Я пытаюсь использовать cin для чтения int после ввода файла непосредственно из командной строки. Вот мой файл:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
Это 81 номер. Вот код с проблемой:
#include <iostream>
using namespace std;
int main()
{
int array[81];
for(int i = 0; i < 81; i++)
cin >> array[i];
int x = 999;
cin >> x;
cout << x << endl;
return 0;
}
Я попытался ввести файл следующим образом:
./a.out < myfile
Однако cin >>
не остановится и сразу напечатает 999 как вывод. Я пробовал cin.clear()
и cin.ignore(INT_MAX, 'n')
, но ни один из них не работает. Тогда я думаю, что есть что-то особенное для ввода такого файла, поэтому я набираю все 81 цифру после запуска a.out (без ввода < myfile
для ввода), если я это сделаю, программа продолжит принимать ввод и никогда не останавливается или распечатать.
Понятия не имею, с чем я сталкиваюсь ...?