Сравнить двойной * с двойным - PullRequest
0 голосов
/ 24 марта 2019

Сначала я помещаю буфер в переменную, после того как хочу сравнить эту переменную с двойным

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' в двоичный оператор '>'

1 Ответ

1 голос
/ 24 марта 2019

Проблема здесь:

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

Пользователи не копируют номера в буфер обмена. Они копируют текст. GlobalLock вернет вам указатель на содержимое text данных буфера обмена. Вы должны разобрать его в число.

Лучше:

char* text = reinterpret_cast<char*>(GlobalLock(clip0));
double d = atof(text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...