【请教】怎么把文件中的一串数读到数组里?
pascal吧
全部回复
仅看楼主
level 5
如题...怎么弄呢?(每个数之间用空格分开,这些数可能是1位,也可能是好多位)还有另外两个问题:如果这些数字中有小数呢?如果这些数字是分好几行写的呢?
2008年10月20日 12点10分 1
level 6
1.若只有一行,有N个整数,那么: {a:array[1..maxn] of longint} for i:=1 to n do read(a[i]);2.若只有一行,有N个小数,那么: {a:array[1..maxn] of real} for i:=1 to n do read(a[i]);3.若有Y行,每行有X个数,那么: {a:array[1..max] of real(or longint)} for i:=1 to y do begin for j:=1 to x do read(a[j+j*(i-1)]); readln; end;
2008年10月21日 06点10分 2
level 6
文件读入有两种方式:一、 var f:text; begin assign(f,‘文件名’); reset(f); 1.若只有一行,有N个整数,那么: {a:array[1..maxn] of longint} for i:=1 to n do read(f,a[i]); 2.若只有一行,有N个小数,那么: {a:array[1..maxn] of real} for i:=1 to n do read(f,a[i]); 3.若有Y行,每行有X个数,那么: {a:array[1..max] of real(or longint)} for i:=1 to y do begin for j:=1 to x do read(f,a[j+j*(i-1)]); readln(f); end; 读完之后要注意close(f);二、 不需要定义上一种方法中的变量F 只需 begin assign(input,'文件名'); reset(input); 具体读入的数据之前也不用加文档变量 1.若只有一行,有N个整数,那么: {a:array[1..maxn] of longint} for i:=1 to n do read(a[i]); 2.若只有一行,有N个小数,那么: {a:array[1..maxn] of real} for i:=1 to n do read(a[i]); 3.若有Y行,每行有X个数,那么: {a:array[1..max] of real(or longint)} for i:=1 to y do begin for j:=1 to x do read(a[j+j*(i-1)]); readln; end; 最后注意要close(input);
2008年10月21日 06点10分 3
level 0
弱弱地问一句,如果不知道有多少个数怎么办?
2008年10月22日 12点10分 4
level 1
LS,用eoln和eof判断该行或全文是否已完.
2008年10月22日 22点10分 5
level 5
谢谢!!我手头没有编译软件,没法试...但是还是谢谢!!!
2008年10月25日 08点10分 6
level 1
eoln不行啊
2008年10月25日 14点10分 7
level 0
while not(eof()) do
2009年11月19日 07点11分 8
level 1
已知有多少数但是中间有空格怎么办
2014年11月12日 22点11分 9
空格是输入时两个数之间的分隔符。如输入“1 2”,read(a);read(b);,那么a=1 b=2
2014年11月13日 12点11分
level 9
其实可以用字符串来写
可以参考我的计算器,呵呵。
先做一个判断是数字或小数点还是空格的function
然后对字符串分割即可
2014年11月13日 13点11分 10
1