主题:谁能HELP我?教教我文件!
hz10213534
[专家分:10] 发布于 2005-08-05 21:46:00
编程里不知WHY,我无法自己实践文件,一上机实践就出错。
哪位大虾可以用浅显的语言讲一讲文件的运用。
THANK YOU!
QQ:371234962
E-MAIL:hz10213534@126.com[em6]
回复列表 (共6个回复)
沙发
stuart920106 [专家分:730] 发布于 2005-08-05 22:04:00
文件类型分两种:文本文件、类型文件。其中文本可包含多类型的,但类型文件只能包含一种类型。
文件是一种特殊的变量,他存储在电脑硬盘上。
调用:assign(file1,file2);
读入: reset(file1);
输出: rewrite(file1);
别忘了最后结束时用 close(file1);
给我一点分把。哈哈。
板凳
zhsas [专家分:1680] 发布于 2005-08-05 22:08:00
楼上的兄弟讲得不错很好,看书吧,书是最好的老师。
运行文件?文件能运行吗?后缀为EXE的才能运行呀!
只能对文件进行各种操作吧!比如建立、使用、处理(修改、合并)文件。
最后要补充的是正文文件(具有行结构的字符文件)和文件缓冲器变量。
3 楼
MagicG [专家分:650] 发布于 2005-08-05 22:21:00
呵呵```这个时候也只有偶出手了```给你个简单速成的:
Turbo Pascal提供了两个预定义标准正文文件变量:Input和Output.它们在程序开始运行时自动打开,并在程序结束时自动关闭。Input是对应键盘的只读文件,Output是对应视频显示器的只写文件。这两个文件使用得十分频繁,因此,当用它们进行读、写操作时,可省写文件名,如:
Write(Ch) 等价于 Write(Output,Ch)
Read(A,B,C) 等价于 Read(Input,A,B,C)
WriteLn 等价于 WriteLn(Output)
ReadLn 等价于 ReadLn(Input)
Eof 等价于 Eof(Input) {Eof判断文件是否结束的函数}
Eoln 等价于 Eoln(Input) {Eoln判断文件当前一行是否结束的函数}
ReadLn 等价于 ReadLn(Input,X)
WriteLn(Sqrt(X):10:5) 等价于 WriteLn(Output,Sqrt(X):10:5)
如果我们将输入输出文本文件重定向为标准输入输出Input和Output,则读入数据与输出数据时跟键盘输入与屏幕输出就没什么两样了。请看下面的范例:
进制转换
源程序名 EXAMPLE.??? (pas,c,cpp)
可执行文件名 EXAMPLE.exe
输入文件名 EXAMPLE.in
输出文件名 EXAMPLE.out
请你编一程序实现两种不同进制之间的数据转换。
输入
输入数据共有三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A~F表示数码10~15,并且该n进制数对应的十进制的值不超过1000000000,第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16)。
输出
输出文件仅一行包含一个正整数,表示转换之后的m进制数。
样例
example.in
16
FF
2
example.out
11111111
以下为源程序,大括号中的内容为注释!
var i,m,n,v,t:longint;
ch:char;
num:string;
begin
assign(input,'example.in'); {将输入文件定向为标准输入,文件名根据题目要求给出}
reset(input); {打开输入文件}
assign(output,'example.out'); {将输出文件定向为标准输出,文件名根据题目要求给出}
rewrite(output); {打开输出文件,以上四句永远写在每个程序的的开头位置,若要从键盘输入则将前两句注释掉即可,若要在屏幕上显示结果则将后两句注释掉即可。}
4 楼
MagicG [专家分:650] 发布于 2005-08-05 22:22:00
readln(n); {以下三行根据输入文件的格式读入数据,与键盘输入相仿}
readln(num);
readln(m);
v:=0; {以下用秦九韶算法计算输入的n进制数对应的十进制值}
for i:=1 to length(num) do
begin
case num[i] of
'0': t:=0;
'1': t:=1;
'2': t:=2;
'3': t:=3;
'4': t:=4;
'5': t:=5;
'6': t:=6;
'7': t:=7;
'8': t:=8;
'9': t:=9;
'A': t:=10;
'B': t:=11;
'C': t:=12;
'D': t:=13;
'E': t:=14;
'F': t:=15
end;
v:=v*n+t
end;
num:=''; {以下用“除m取除,除尽取倒”的方法求对应的m进制数}
while v<>0 do
begin
case v mod m of
0: ch:='0';
1: ch:='1';
2: ch:='2';
3: ch:='3';
4: ch:='4';
5: ch:='5';
6: ch:='6';
7: ch:='7';
8: ch:='8';
9: ch:='9';
10: ch:='A';
11: ch:='B';
12: ch:='C';
13: ch:='D';
14: ch:='E';
15: ch:='F'
end;
num:=ch+num;
v:=v div m
end;
writeln(num); {根据输出要求格式向输出文件中写数据,与屏幕显示相仿}
close(input);
close(output) {关闭输入输出文件,不能省略}
end.
表忘了加分哦```
5 楼
hz10213534 [专家分:10] 发布于 2005-09-11 19:10:00
谢谢大家!
6 楼
口口and枕头 [专家分:1550] 发布于 2005-09-12 13:45:00
谢谢 都说了就是不加分哟!~~
我来回复