我收到了一个用Notepad ++创建的文本文件,我试图在Mac和PC上使用Fortran 95程序阅读。读取行是:
read(lun,'(a)',iostat=io1) input
由于我不知道线路长度是多少,我定义的输入长度为512。使用非记事本++文件,当找到行尾时,读取“停止”并自动前进到下一行文本。使用notepad ++文件,它会读取512个字符,跳过回车符。当我使用电脑上的dos编辑器打开文件时,我看到回车符号(ASCII字符13)但行之间没有中断,它们全部相互附加。
我尝试搜索ichar(13)
和ichar(10)
,退回到行的开头并尝试强制前进到下一行;阅读format '(a,/')'
,但无法获得任何工作。
答案 0 :(得分:0)
您需要的是管道类型设计。基本例程是一个名为getline的例程,它获取一行数据直到回车。在初始化中,你所做的是将文件作为二进制文件打开并读取1024个字符的缓冲区。每当调用getline时,返回下一批字符,直到你到达CR。如果没有足够的字符,请将未处理的字符移到前面并读入剩余的字符。
它基本上是编译器的工作原理 - 它们获得一个令牌流,在你的情况下是一串以CR结尾的字符,然后它们处理令牌。