回 帖 发 新 帖 刷新版面

主题:pascal中关于文件的问题

请问pascal中文本文件(text)中的回车换行符和行结束符是一回事吗?
[em8]

回复列表 (共3个回复)

沙发

从键盘输入一段正文,将它复制到指定的磁盘文件中,然后再在显示器上输出。
[问题分析] 
(1)从键盘输入正文,需逐个输入字符,且按行存储,每行用回车键结束;
(2)当文件写结束时,加一个文件结束标志(ctrl+z),再用close关闭文件;
(3)打开此文件,逐个读取字符,并显示在屏幕上。
程序如下:
program p9_1(input,output);
  var 
    ch:char;
    str1:string[15];
    file1:text;
  begin
    write('please input a file name:');
    readln(str1); {输入文件名、建立新文件}
    assign(file1,str1); {将内部变量名与外部文件建立关联}
    rewrite(file1); {以写状态打开该文件,准备写入}
    while not eof do {文件未结束(即未从键盘输入ctrl+z)就写一行}
      begin
        while not eoln do{一行未结束(即未从键盘输入一个回车换行符)就继续写}
          begin
            read(ch);
            write(file1,ch); {将ch写入文件中}
          end;
        readln; {键盘上换一行}
        writeln(file1); {写一个行结束符到文件中}
      end;
    close(file1); {写文件结束,关闭文件}
    writeln; {屏幕换行}
    reset(file1); {以读状态再次打开该文件}
    while not eof(file1) do {从文件读取数据,直到遇到文件结束符为止}
      begin
        while not eoln(file1) do {读取一行数据}
          begin
            read(file1,ch); {从文件中读一个字符给ch}
            write(ch:3); {将ch输出到屏幕上}
          end;
        readln(file1); {遇到回车换行符就换一行继续读}
        writeln; {屏幕换行}
      end;
    close(file1); {读文件结束,关闭文件}
  end.

运行程序后,从键盘上输入三行字符
abcde
abcdef
abcdefg
按照这道程序的话每行后面有几个行结束符呢?[em10]

板凳

应该是一回事。

3 楼

回车换行符是chr(13), 行结束符是chr(10).
每个文本文件的换行处都是chr(13)+chr(10).

以上

我来回复

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