Cin пропускается, а cin.ignore не работает - PullRequest
1 голос
/ 07 июля 2019

Требуется перенаправление ввода / вывода, и я не могу использовать fstream.Я использую перенаправление I/O, запустив исполняемый файл с "< input.txt".В моей программе я использую while(cin>>line) для чтения файла с помощью перенаправления I/O.Затем мне нужно cin>>x ,, но на этот раз для пользовательского ввода во время выполнения, но это пропускается.

Я пытался cin.ignore, cin.clear().

Если cin используется для перенаправления I/OВозможно ли, что cin может использоваться для ввода пользователя в той же программе?

/* Not sure if this is necessary but example of input file:
x y z
a b c
j k l
*/
string line;
while(cin>>line)
{
    cout<<line<<endl;
}

//I've tried these 2 lines but cin>>x is still being skipped
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

cout<<"Enter number: ";
int x;
cin>>x;// this is being skipped

1 Ответ

0 голосов
/ 08 июля 2019

Я полагаю, что будет работать следующее (не проверено):

string line;
while(cin>>line)
{
    cout<<line<<endl;
}

cin.close ();
cin.open ("/dev/tty");  // (or, on Windows, cin.open ("CON:");

...
...