Ожидание нажатия Enter - C (СИ)
Формулировка задачи:
Написал программку
Но она как только я введу 1 завершается, и я ничего не успеваю прочитать. Как сделать, что-бы она ждала, пока я нажму Enter?
#include <stdio.h>
main()
{
int c;
long tab,prob,strend;
tab = 0;
prob = 0;
strend = 0;
while ((c=getchar())!='1') { /* В идеале не '1', а EOF, но как EOF ввести с клавы я не знаю */
if (c == ' ') ++prob;
if (c == '\n') ++strend;
if (c == '\t') ++tab;
}
printf("probeli: %d\nokonchania strok: %d\ntabuliacii: %d\n",prob,strend,tab);
}Решение задачи: «Ожидание нажатия Enter»
textual
Листинг программы
#include <stdio.h>
main()
{
char p;
int c;
long tab,prob,strend;
tab = 0;
prob = 0;
strend = 0;
while ((c=getchar())!='1') {
if (c == ' ') ++prob;
if (c == '\n') ++strend;
if (c == '\t') ++tab;
}
printf("probeli: %d\nokonchania strok: %d\ntabuliacii: %d\n",prob,strend,tab);
scanf(p);
}
Объяснение кода листинга программы
В этом коде выполняется следующие действия:
- Объявляются три переменные:
pтипаchar,cтипаintиstrendтипаlong. - Переменным
tab,probиstrendприсваивается значение 0. - Запускается цикл
while, который будет выполняться до тех пор, покаcне станет равным 1. - Внутри цикла проверяется каждый символ, вводимый пользователем. Если символ равен пробелу, то увеличивается значение переменной
probна 1. Если символ равен символу новой строки, то увеличивается значение переменнойstrendна 1. Если символ равен табуляции, то увеличивается значение переменнойtabна 1. - После окончания цикла выводятся значения переменных
prob,strendиtabна экран. - Затем пользователю предлагается ввести символ для проверки.