실제로 I/O 유형 검사가 적용됩니다.
{$I-} //turn off IO checking temporarily
read(i);
{$I+} // and back on
if ioresult=0 then // check the result of the last IO operation
writeln('integer successfully read:',number)
else
writeln('invalid input');
참고 : 당신은 일시적으로 해제 한 후 결과를 확인하여이 문제를 해결할 수있는 일반적인 대답은 종종 "그냥 문자열을 읽고 변환 자신을"그러나없이 잘 그렇게하기가 어렵다 터미널 유형에 대한 가정을합니다.
다소 유효성이 검증 된 입력이 필요한 명확하고 간단한 프로그램의 경우 위의 트릭 (및 오류가 반복되는 루프를 둘러싼 것)이면 충분합니다.
당신이 볼
program int_check;
uses crt;
var n:real;
begin
clrscr;
write('Enter a number: ');readln(n);
if n-round(n)=0 then write('Integer!') else write('Not an Integer!');
readln;
end.
, 어떤 문자열, 아니 IOcheck
, 그리고 양식에 맞는 없습니다 :
+1 투표는 퍼즐 조각이 누락되었음을 인식하고 IO 오류를 확인하는 방법이 있어야합니다. –