将 double* 与 double 进行比较

Compare double* with double

首先我将剪贴板放入一个变量,之后我想将这个变量与双精度变量进行比较

double * k;

if (OpenClipboard(NULL) != FALSE) {
    HANDLE clip0 = GetClipboardData(CF_TEXT);
    if (clip0 != NULL) {
        k = reinterpret_cast < double * > (GlobalLock(clip0));
        GlobalUnlock(clip0);
    }
    CloseClipboard();
}
printf("%f", k);

double mini;
mini = 0.1258;

if (k > mini) {
    printf("ok");
} else {
    printf("non");
}

但我收到此错误:[错误] 类型 'double*' 和 'double' 的无效操作数转换为二进制 'operator>'

问题在这里:

k = reinterpret_cast < double * > (GlobalLock(clip0));

用户不会将数字复制到剪贴板。他们复制文本。 GlobalLock 将 return 指向剪贴板数据的 text 内容的指针。你必须把它解析成一个数字。

更好:

char* text = reinterpret_cast<char*>(GlobalLock(clip0));
double d = atof(text);