Qt, QTextStream - ввод символа / строки в int
Рассмотрим следующую программу:
int num;
QTextStream(stdin) >> num;
QTextStream(stdout) << num;
Например, если я неправильно введу строку или символ в переменную num
, его значение становится 0 по умолчанию.
Как я могу изменить поведение QTextStream
, так что он хранит другое значение для неправильных входных данных? Например, -1?
1 ответ
Решение
Вы не можете изменить это поведение, но вы можете проверить QTextStream::status()
за QTextStream::ReadCorruptData
,
int num;
QTextStream input(stdin);
input >> num;
if (input.status() == QTextStream::ReadCorruptData)
num = -1;
QTextStream(stdout) << num;