У меня есть некоторый код, и я хотел использовать cin.eof (), чтобы остановить мою программу от чтения ввода. Я думал о том, чтобы сделать:
char array[10]
while(!cin.eof())
{
for(int i = 0; i < 10; i++)
{
cin >> array[i];
}
}
И код продолжается. Однако, когда я нажимаю ‘\ n’, выводится мой вывод. Когда я нажимаю cntrl + d (на терминале UNIX), программа снова выполняет вывод и затем завершается. Как получить так, чтобы моя программа перестала читать на новой строке и печатала мой вывод, когда я нажимал cntrl + d только один раз?
Благодарю.
Первый, cin.eof()
не делает ничего полезного, пока ввод не прошел.
Вы никогда не хотите использовать его в верхней части цикла.
Во-вторых, мне не совсем понятно, что вы пытаетесь сделать.
Что-то вроде:
std::string line;
while ( std::getline( std::cin, line ) ) {
// ...
}
возможно? Это будет читать строку текста в переменную line
, до тех пор
конец файла; когда вы встретите конец файла, ввод не удастся, и
ты выйдешь из петли.
Других решений пока нет …