我是计算机科学的第一年,我正在努力学习基础课程......
我有一个输入文件:
aa
bb cc
dd
该计划:
program readingas;
var df:text; i,j,k,x,wc:integer; A,B,C:array[1..255]of string; IPavad:string;
begin
assign(df,'duom.txt');reset(df);
wc:=1;
k:=1;
while not eof(df) do
begin
readln(df,A[wc]);
wc:=wc+1;
end;
for i:=1 to wc-1 do
begin
for j:=1 to length(A[i]) do
if A[i][j]=' ' then k:=k+1 else B[k]:=B[k]+A[i][j];
end;
close(df);
for x:=1 to k do
begin
writeln(B[x]);
end;
readln;
end.
输出文件如下所示:
aa
bbccdd
当我想要它时:
aa
bb
cc
dd
无法弄清楚程序有什么问题......
答案 0 :(得分:0)
此:
B[k]:=B[k]+A[i][j];
是一个串联,如果没有包含中间空格的文本的行,则将所有文本连接在一起。这些行被跳过。
这看起来很正常。可能你想在跳过两种情况下总是增加K.
var b :boolean
while not eof(df) do
begin
readln(df,s);
b:=true;
for j:=1 to length(s) do
if s[j]=' ' then b:=false;
if b then
writeln(s);
end;
也会这样做。您可以使用
删除大多数编译中的整个循环 if Pos(' ',s)=0 then
writeln(s)
甚至