回 帖 发 新 帖 刷新版面

主题:谁能HELP我?教教我文件!

编程里不知WHY,我无法自己实践文件,一上机实践就出错。
哪位大虾可以用浅显的语言讲一讲文件的运用。
      THANK YOU!
QQ:371234962
E-MAIL:hz10213534@126.com[em6]

回复列表 (共6个回复)

沙发

文件类型分两种:文本文件、类型文件。其中文本可包含多类型的,但类型文件只能包含一种类型。
文件是一种特殊的变量,他存储在电脑硬盘上。
调用:assign(file1,file2);
读入: reset(file1);
输出: rewrite(file1);
别忘了最后结束时用 close(file1);
给我一点分把。哈哈。

板凳

楼上的兄弟讲得不错很好,看书吧,书是最好的老师。
运行文件?文件能运行吗?后缀为EXE的才能运行呀!
只能对文件进行各种操作吧!比如建立、使用、处理(修改、合并)文件。
最后要补充的是正文文件(具有行结构的字符文件)和文件缓冲器变量。

3 楼

呵呵```这个时候也只有偶出手了```给你个简单速成的:
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 楼

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 楼

谢谢大家!

6 楼

谢谢 都说了就是不加分哟!~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册