Конец ввода в XTerm usnig клавиатуры

Как я могу сигнализировать терминалу XTerm к концу ввода. В моем случае я запускаю программу на C ++ в консоли XTerm и хочу сообщить программе об окончании ввода нажатием некоторой комбинации кнопок на клавиатуре (я пробовал Ctrl + D Ctrl + Z). Моя программа выглядит следующим образом:

map<int,string>info;
string name;
int age;
cin>>name;
while( **?????????** ){   //Input till EOF , missing logic
cin>>age;
info.insert( pair<int,string>(age,name) );
cin>>name;
}

Программа продолжается после получения конца входного сигнала от терминала.

0

Решение

Вы всегда нужно проверить вход после читая, т.е. ваша программа должна выглядеть примерно так:

while (std::cin >> name >> age) {
// do something with name and age
}

Это будет читать из std::cin пока что-то не получится. Вы можете проверить, если std::cin.eof() устанавливается, чтобы определить, является ли достижение ошибки входным сигналом причиной ошибки или произошел какой-либо другой сбой, например, попытка ввести что-то, что не является числом для age,

1

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

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

По вопросам рекламы [email protected]