2016-07-27 14 views
0

에 문자/문자열을 입력하면 다음과 같은 프로그램을 고려 : 나는 경우,이 같이는 Qt는, QTextStream은 INT

int num; 

QTextStream(stdin) >> num; 

QTextStream(stdout) << num; 

을 변수 num에 잘못 입력 문자열을, 또는 문자, 그 값을에 기본적으로 0이됩니다.

QTextStream의 동작을 어떻게 변경하여 잘못된 입력에 대해 다른 값을 저장합니까? 예를 들어, -1?

+0

QTextStream을 서브 클래 싱하여 >> (int) 연산자를 오버로드 할 수 있습니다. –

답변

2

이 동작은 변경할 수 없지만 은 QTextStream::ReadCorruptData입니다.

int num; 

QTextStream input(stdin); 
input >> num; 

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

QTextStream(stdout) << num;