用字符串读入,然后判断读入是否为空,遇到空的就跳出,这样也就不用eof 了 var s:string; begin assign(input,'1.in'); assign(output,'1.out'); reset(input); rewrite(output); while true do begin readln(s); if s='' then break; end; close(input); close(output); end.
追问
那还不是一样?
追答
一样吗,我这边可以了啊,不是说要到第一个回车停止读入吗
追问
可是有空行怎么办?你有做过神秘的杂文这道题吗?
追答
你的意思是空行包含空格是吧,那就再加一点 var s:string; t:longint; begin assign(input,'1.in'); assign(output,'1.out'); reset(input); rewrite(output); while true do begin readln(s); t:=1; while s[t]=' ' do inc(t); if (t>length(s)) then break; end; close(input); close(output); end.
追问
3 3.14 aaa 5a A5 -3
-3.14 5 像这个数据,空行下面还有数据怎么办?
追答
是要忽略空行继续读下面的数据是吧,把break改成continue就OK了 最好把上面那个while true do 改回 while not (eof) do 防止数据末尾没有空行