将双倍*与双倍进行比较

Compare double* with double

本文关键字:比较      更新时间:2023-10-16

首先,我将剪贴板放在一个变量上,然后我想将此变量与双精度变量进行比较

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"的无效操作数到二进制"运算符>

问题就在这里:

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

用户不会在剪贴板中复制数字。他们复制文本。 全局锁将返回指向剪贴板数据的文本内容的指针。 你必须把它解析成一个数字。

更好:

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