Qt,QTextStream - 输入一个 char/string 到一个 int

Qt, QTextStream - inputting a char/string into an int

考虑以下程序:

int num;

QTextStream(stdin) >> num;

QTextStream(stdout) << num;

像这样,如果我要错误地向变量num输入一个字符串,或者一个字符,它的值默认为0。

如何更改 QTextStream 的行为,以便它为不正确的输入存储不同的值?例如,-1?

您无法更改此行为,但您可以检查 QTextStream::status() 是否有 QTextStream::ReadCorruptData

int num;

QTextStream input(stdin);
input >> num;

if (input.status() == QTextStream::ReadCorruptData)
    num = -1;

QTextStream(stdout) << num;