-2

我收到了一个使用 Notepad++ 创建的文本文件,我正尝试在 Mac 和 PC 上使用 Fortran 95 程序读取该文本文件。读取行是:

 read(lun,'(a)',iostat=io1) input

由于我不知道行长是多少,我将输入定义为 512 的长度。对于非记事本++文件,当找到行尾时,读取“停止”并自动前进到下一行文本。使用 notepad++ 文件,它读取 512 个字符,跳过回车。当我使用 pc 上的 dos 编辑器打开文件时,我看到回车符号(ASCII char 13),但行之间没有中断,它们都相互附加。

我尝试搜索ichar(13)and ichar(10),退格到行首并尝试强制前进到下一行;与 一起阅读format '(a,/')',但无法进行任何工作。

4

1 回答 1

0

您需要的是流水线型设计。基本例程是一个称为 getline 的例程,它获取一行数据直到回车。在初始化过程中,您所做的是将文件作为二进制文件打开并读取一个包含 1024 个字符的缓冲区。每当调用 getline 时,返回下一批字符,直到到达 CR。如果没有足够的字符,将未处理的字符移到前面并读入剩余的字符。

这基本上是编译器的工作方式——它们得到一个标记流,在你的情况下,它是以 CR 结尾的字符串,然后它们处理标记。

于 2013-05-31T22:32:37.783 回答