我想将一个字符串从C传递给Fortran,然后逐行处理,就好像我正在读取文件一样。这可能吗?
示例字符串 - 包含换行符
File description: this file contains stuff
3 Values
1 Description
2 Another description
3 More text
然后,我想逐行解析字符串,就像文件一样。与此类似:
subroutine READ_STR(str, len)
character str(len),desc*70
read(str,'(a)') desc
read(str,*) n
do 10 i=1,n
read(str,*) parm(i)
10 continue
答案 0 :(得分:2)
并非没有重要的“手动”干预。有几个问题:
换行符在内部文件中没有特殊含义。内部文件中的记录对应于数组中的元素。您可能需要先将字符标量手动预处理为数组,或者使用跳过换行符的单个READ。
如果您确实将字符串处理为数组,则内部文件不会在父READ语句之间维护文件位置。您需要自己手动跟踪当前记录,或使用访问多个记录的单个READ语句处理整个数组。
如果您有可变宽度字段,那么编写一个格式规范来处理单个READ中的所有内容可能会有问题,但这取决于输入的详细信息。