Я пишу код для чтения с терминала с помощью cpp, но по какой-то причине он разбился после того, как закончились номера. Из того, что я прочитал в Интернете, я смогу проверить, был ли std::cin
успешным, используя std::cin.fail()
, но он вылетает раньше.
Код, который я запускаю, -
#include <iostream>
int main()
{
int x{};
while (true)
{
std::cin >> x;
if (!std::cin)
{
std::cout << "breaking" << '\n';
break;
}
std::cout << x << '\n';
}
return 0;
}
с ввод:
test@test:~/learn_cpp/ex05$ ./test
1 2
1
2
^C
Мне приходится нажимать ctrl + c вне программы. Информация о версии:
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.