ďťż

Ładny brzuch

Podczas pisania programu natrafiłem na pewien problem. "Wyciągnąłem" go więc do elementarnego programu, który obrazuje ten błąd, żeby go tu zamieścić:

var b:longword; procedure error; begin writeln('blad'); readln; halt; end; begin {$i-} readln(b); {$i+} if ioresult<>0 then error; writeln(b); end.
problem jest taki, ze readln w procedurze error po prostu nie działa (program zachowuje się tak jakby go tam w ogóle nie było). Co jest tego powodem i jak można temu zaradzić?
Byłbym wdzięczny za odpowiedź.



Przede wszystkim usuń halt;

Ale przecież procedura halt wywołana jest po procedurze readln, więc raczej nie powinna mieć tu nic do czynienia przed naciśnięciem entera?
A po za tym usuniecie halta nic nie zmienia (oczywiście oprócz tego, że program nie zamyka się od razu), readln w procedurze wciąż nie działa.

EDIT: Właśnie zauważyłem, że problem rozwiązuje dwukrotne wywołanie procedury readln. wtedy druga już działa.
Wciąż tylko nie wiem zbytnio dlaczego. ;f
Użytkownik Arsen edytował ten post 27 listopad 2008, 20:53
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •