我只想将带有可变行的两列文本文件读入数组。文本文件的第一列是以秒为单位的时间,第二列是温度。像这样:
1.1 10
2.1 20
3.2 30
4.2 40
5.3 50
6.3 60
7.4 70
以下是我编写的代码:
模块 myData 输入 line_info 即时的 真实的::温度 端型 类型数据链路 类型(line_info)::time_temp 类型(数据链路),指针::下一个 端型 类型(line_info),可分配 :: FileInfoArr(:) 端模块 程序控制台1 使用我的数据 隐式无 !变量 类型(line_info),可分配 :: time_temp_arr(:) !real,allocatable :: File2Arr(:) 字符 (len=80) :: FileFullName="C:\t.txt" 调用 File2Arr(FileFullName,time_temp_arr) 结束程序控制台1 子程序 File2Arr(FileFullName,InfoArray) 使用我的数据 字符 (len=80) :: FileFullName 类型(line_info),可分配的 :: InfoArray(:) 类型(数据链路),指针 :: 头 类型(数据链路),指针 :: p 整数误差,大小,我 逻辑活着 !检查文件是否存在 查询(文件=文件全名,存在=活着) 如果(活着==0)那么 write(*,*) FileFullName, "不存在。" 停止 万一 !使用指针读取文件 打开(10,文件=文件全名,状态=“旧”,iostat=错误) 如果(错误/=0)那么 write(*,*) "打开文件失败!" 停止 万一 分配(头) 无效(头%下一个) p=>头 大小=0 !read(10,"(A80)") tempstr 做while(.true.) 读取(10,fmt=*,iostat=error)p%time_temp 如果(错误/=0)退出 尺寸=尺寸+1 分配(p%next,stat=error)!添加下一行 如果(错误/=0)那么 写(*,*)“内存不足!” 停止 万一 p=>p%下一个 无效(p%next) 结束做 !将链接信息保存到数组中 分配(信息数组(大小)) p=>头 我=0 做while(关联(p%next)) 我=我+1 InfoArray(i)=p%time_temp p=>p%下一个 !write(*,*) FileInfoArr(i)%time, FileInfoArr(i)%temp 结束做 结束子程序
当我编译它时,我得到了这个:
错误 #8055:该过程有一个虚拟参数,该参数具有 ALLOCATABLE、ASYNCHRONOUS、OPTIONAL、POINTER、TARGET、VALUE 或 VOLATILE 属性。原始源中缺少必需的显式接口。[TIME_TEMP_ARR]
有关如何解决此错误的任何想法,感谢您的帮助。