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;
Другие вопросы по тегам