2016-07-27 49 views
0

考慮下面的程序:的Qt,QTextStream - 輸入字符/串轉換爲一個int

int num; 

QTextStream(stdin) >> num; 

QTextStream(stdout) << num; 

這樣,如果我錯誤地輸入一個字符串或字符,到變量num,它的價值默認爲0。

如何更改QTextStream的行爲,以便爲不正確的輸入存儲不同的值?例如,-1?

+0

您可以繼承QTextStream並重載操作符>>(int)。 –

回答

2

你不能改變這種行爲,但你可以檢查QTextStream::status()QTextStream::ReadCorruptData

int num; 

QTextStream input(stdin); 
input >> num; 

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

QTextStream(stdout) << num; 
相關問題