将double *与double进行比较

问题描述 投票:-2回答:1

首先我将剪贴板放到变量中,之后我想将此变量与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>'的操作数无效

c++ windows double clipboard
1个回答
1
投票

问题在这里:

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

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

更好:

char* text = reinterpret_cast<char*>(GlobalLock(clip0));
double d = atof(text);
© www.soinside.com 2019 - 2024. All rights reserved.