2012-11-16 7 views
1

에 문제가있을 수 있습니다. 나는 파일에서 배열을 읽고 그 문자열을 파스칼 언어의 표준 입력으로부터 얻으려고했다. 그리고 그것은 작동하지 않습니다. 그것은 오류 메시지를 보내지도 않고 화면에 입력 문자열을 쓸 때까지 기다리지 않습니다. 어떻게해야합니까? 누구든지 나를 도울 수 있습니까?표준 입력/파일 입력

여기 내 코드입니다 :

Procedure beolvas(var x:rangsor; var n:byte; fajl:string); 
var i:byte; 

Begin 
    Assign(input,fajl); 
    Reset(input); 
Readln(n); 
for i:=1 to n do begin 
    Readln(x[i].diak); 
    Readln(x[i].atlag); 
end; 
close(input) 
End; 

Procedure beolvasnev(var s:string; x:rangsor; n:byte); 
var i:byte; 
Begin 
Write('Kerem a diak nevet: '); 
Readln(s); 
End; 
+0

파일 액세스가 성공할 것이라고 가정하지 마십시오. 항상 결과를 확인하십시오. – Jay

답변

2

시도하면, 파일 변수를 완료 한 당신이 close(input)를 호출 한 후에 그건 후 Assign(input, ''); (빈 파일 이름).

+0

+1 그건 트릭입니다. –

0

프로그램에서 어떤 파일을 읽을 지 말하지 않습니다. 파일 이름이 없으면 프로그램은 콘솔에서 읽으려고합니다.이 콘솔은 "화면에 입력 문자열을 쓸 때까지 기다리지 않습니다."(필자는 "필기 전까지 만 기다려야합니다. 입력 문자열 "?).

의도적인지 여부는 알 수 없지만 파일의 첫 번째 줄에는 정수 값이 있어야합니다. 문자열 변수를 파일에서 읽고 루프 카운터로 사용하기 전에 문자열이 숫자인지 확인하는 것이 좋습니다.

관련 문제