Fortran Coder

查看: 2965|回复: 4
打印 上一主题 下一主题

[文件读写] 关于使用OPEN的遇到读写问题

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
34 元
贡献
12 点
跳转到指定楼层
楼主
发表于 2023-2-11 15:45:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
使用do循环来轮流读取txt的数据
[Fortran] 纯文本查看 复制代码
program $

    implicit none

    double precision a(30),b(30),c(30),d(30) !dimensions of coils: m
      common /coils/a,b,c,d
      double precision e(30)
        common /e/e
    integer ncoil
    integer icoil
   ! character unit
    common /nc/ncoil

    open(1,file='1.txt',status='old')
    read(1,*) ncoil
    !read(1,*) unit
    do icoil=1,ncoil !get the dimensions of each coil
         read(1,*)c(icoil),d(icoil),b(icoil),a(icoil),e(icoil)
        end do
    close(1)
    pause
    end program $


代码如上,用来进行读取的,发现txt放入六行数据(do循环五次)或者中间数据有负值就会报错导致中断,放少就能正常运行,然后自己手动码不使用OPEN也能码到do循环(ncoil=20)结束,有现成的数据读取,手动码太麻烦了,这个是OPEN的问题吗编译器用的是IVF
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

6

帖子

2

主题

0

精华

入门

F 币
34 元
贡献
12 点
5#
 楼主| 发表于 2023-2-13 15:43:08 | 只看该作者
li913 发表于 2023-2-13 14:55
检查txt的编码格式,用ansi

谢谢大佬的建议,改用了,好像是能多输入两行了,但是再多读取数据就又报错了,大概要读取个20行的数据

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
地板
发表于 2023-2-13 14:55:57 | 只看该作者
检查txt的编码格式,用ansi

6

帖子

2

主题

0

精华

入门

F 币
34 元
贡献
12 点
板凳
 楼主| 发表于 2023-2-13 09:42:33 | 只看该作者
本帖最后由 sleepy036 于 2023-2-13 14:17 编辑
Transpose 发表于 2023-2-11 18:54
大概率是你的数据有问题,比如没有用分隔符隔开,或者数据量不足等等,最好把报错给出来 ...

1.TXT:
20
0.499618        0.5198        0.516356        0.767236        1568
0.499626        0.535626        0.220292        0.374852        1725
0.499552        0.525472        0.014167        0.173207        1278
0.499552        0.525472        0.173207        0.014167        1278
!0.499626        0.535626        0.374852        0.220292        1725

数据是这样子的,然后只要输入感叹号那行以后就会报错:
会提示没有为 libifcoremdd.dll 加载的符号文件

forrtl: severe (59): list-directed I/O syntax error, unit 1, file D:\C++\读取\1.txt
Image              PC                Routine            Line        Source
libifcoremdd.dll   00007FFC7FC7B167  Unknown               Unknown  Unknown
libifcoremdd.dll   00007FFC7FCE00E5  Unknown               Unknown  Unknown
libifcoremdd.dll   00007FFC7FCDEF9E  Unknown               Unknown  Unknown
读取.exe           00007FF601B91118  MAIN__                     29  璇诲彇.f90
读取.exe           00007FF601B9182E  Unknown               Unknown  Unknown
读取.exe           00007FF601B944C9  Unknown               Unknown  Unknown
读取.exe           00007FF601B943EE  Unknown               Unknown  Unknown
读取.exe           00007FF601B942AE  Unknown               Unknown  Unknown
读取.exe           00007FF601B9453E  Unknown               Unknown  Unknown
KERNEL32.DLL       00007FFD0DA326BD  Unknown               Unknown  Unknown
ntdll.dll          00007FFD0F22DFB8  Unknown               Unknown  Unknown
29行是 read(1,*) ncoil

没报错的话查看局部变量是有读取成功的现在还没搞明白为什么

167

帖子

2

主题

1

精华

大师

Vim

F 币
1011 元
贡献
484 点

规矩勋章

沙发
发表于 2023-2-11 18:54:28 | 只看该作者
大概率是你的数据有问题,比如没有用分隔符隔开,或者数据量不足等等,最好把报错给出来
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 10:49

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表