Использование cin.eof ()

У меня есть некоторый код, и я хотел использовать cin.eof (), чтобы остановить мою программу от чтения ввода. Я думал о том, чтобы сделать:

char array[10]
while(!cin.eof())
{
for(int i = 0; i < 10; i++)
{
cin >> array[i];
}
}

И код продолжается. Однако, когда я нажимаю ‘\ n’, выводится мой вывод. Когда я нажимаю cntrl + d (на терминале UNIX), программа снова выполняет вывод и затем завершается. Как получить так, чтобы моя программа перестала читать на новой строке и печатала мой вывод, когда я нажимал cntrl + d только один раз?

Благодарю.

1

Решение

Первый, cin.eof() не делает ничего полезного, пока ввод не прошел.
Вы никогда не хотите использовать его в верхней части цикла.

Во-вторых, мне не совсем понятно, что вы пытаетесь сделать.
Что-то вроде:

std::string line;
while ( std::getline( std::cin, line ) ) {
//  ...
}

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector