Как закончить ввод символов в консоль в Code::Blocks, чтобы начались вычисления?
Написал простую программу, идея которой считывать данные, введённые в консоль. Программа должна сохранять количество разных цифр в массив ndigit, а также количество символов и количество пробелов в переменные no и nw соответственно.
При запуске ввожу данные в консоль, затем нажимаю ENTER и у меня просто ввод переходит на новую строку. Я не понимаю, как дать сигнал о том, что я завершил ввод. Пробовал различные сочетания клавиш в том числе и ctrl+z.
Код программы представлен ниже, мало ли там ошибки...Операционная система - Linux Ubuntu. Компилятор - GNU GСC.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c, i, nw, no;
int ndigit[10];
nw = no = 0;
for(i = 0; i < 10; i++)
ndigit[i] = 0;
while((c = getchar()) != EOF)
{
if(c >= '0' && c <= '9')
++ndigit[c - '0'];
else if(c == ' ' || c == '\n' || c == '/t')
++nw;
else
++no;
}
printf("digits: ");
for(i = 0; i < 10; i++)
printf("%d ", ndigit[i]);
printf("Whitespaces: %d, other symbols: %d", nw, no);
return 0;
}
Источник: Stack Overflow на русском