Fortran Coder

查看: 3489|回复: 3
打印 上一主题 下一主题

[文件读写] Fortran读取文件问题

[复制链接]

5

帖子

2

主题

0

精华

新人

F 币
30 元
贡献
12 点
跳转到指定楼层
楼主
发表于 2022-9-18 15:01:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神好!
       我想试着从一个文件里读取我想要的内容,比如“ 11 22 33 ” “20 23 55”这种特定格式的两行,我就这样用了read语句,代码如下。但是却报错input conversion error,请问怎么解决呢? 如何跳过那些不是这个1002格式的行,只提取符合这个格式的行呢? 感谢!
文件是: 11 22 33
              helloworld
              35 336 111
              20 23 55
              #2022
代码是:
      read(11,1002) num1,num2,num3
1002 format(i2,1x,i2,1x,i2)



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2022-9-19 08:16:35 | 只看该作者
read(11,1002) num1,num2,num3
改为
read(11,*) num1,num2,num3


在99.99%的情况下,read不需要指定格式。表控是最佳的选择。

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2022-9-19 08:17:58 | 只看该作者
跳过格式不符的行
[Fortran] 纯文本查看 复制代码
Do
  read(11,*,ioStat=k) num1 , num2 , num3
  if(k/=0) cycle
End Do

5

帖子

2

主题

0

精华

新人

F 币
30 元
贡献
12 点
地板
 楼主| 发表于 2022-9-19 15:03:11 | 只看该作者
fcode 发表于 2022-9-19 08:17
跳过格式不符的行
[mw_shl_code=fortran,true]Do
  read(11,*,ioStat=k) num1 , num2 , num3

好的感谢!我去实践一下!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-24 20:19

Powered by Tencent X3.4

© 2013-2024 Tencent

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