Как я могу включить ‘\ n’ в идиому while (cin & gt;> g)?

Я понимаю, что оператор >> возвращает левый операнд, так cin >> x возвращается cin который имеет значение false если мы столкнемся с EOF или другие ошибки. Теперь я думаю, что с cin пропускает пробел, символы как \n не храниться Я хотел бы сделать что-то вроде этого:

int x;

while((cin >> x) and x != '\n')
// do stuff

Так что когда cin встречает новую строку в потоке, он выходит из цикла ввода (как это обычно делается, скажем, EOF).

1

Решение

С помощью >> Оператор напрямую не будет работать, потому что, как вы говорите, он пропускает пробелы, включая переводы строки.

Что вы можете сделать, это прочитать одну строку, используя std::getline, а затем вы можете прочитать все входные данные из строки с std::stringstream,

std::string line;
if (std::getline(std::cin, line)) {
std::istringstream ss(line);
int x;
while (ss >> x) {
//....
}
}
6

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

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

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