Привет.
В Linux при вводе строки сочетание клавиш
Ctrl + D должно вызывать
EOF, то есть конец ввода.
У меня есть программа, которая должна считывать ввод строки, затем возвращать ее значение в консоль и это всё в цикле, который завершается при условии конца ввода. А после цикла программа должна выводить количество напечатанных символов. Но при нажатии
Ctrl + D при окончании ввода программа просто останавливается и не идет дальше.
Вот кусок кода:
char ch;
int count = 0;
std::cin.get(ch);
while (!std::cin.eof()) {
std::cout << ch;
count++;
std::cin.get(ch);
}
std::cout << '\n' << count << " characters read\n";
Вот как это выглядит в консоли:
some text here
some text here
eof
eof
^D
Процесс завершился c кодом выхода 0
То есть последняя строка кода просто не выполняется.
Как решить это?