首先我将剪贴板放到变量中,之后我想将此变量与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将返回指向剪贴板数据文本内容的指针。你必须将它解析成一个数字。
更好:
char* text = reinterpret_cast<char*>(GlobalLock(clip0));
double d = atof(text);