gpt4 book ai didi

fortran - 如果某些数据包含空格,如何读取逗号分隔的数据文件

转载 作者:行者123 更新时间:2023-12-01 22:40:15 38 4
gpt4 key购买 nike

我正在尝试读取一个使用逗号作为分隔符的数据文件,如下所示

IPE 80,764,80.14,8.49
IPE 100,1030,171,15.92

但是如果我阅读使用

READ(1,*) var1, var2, var3, var4

它读取 IPE 和 80 作为不同的数据。换句话说,它将逗号和空格都算作分隔符,但我不想要这个。我怎么能告诉我的程序“嘿空格不是逗号分隔符!” ?

最佳答案

一种可能是将整行读入字符串缓冲区,然后自己查找(一些)定界符。假设与您的示例类似,只有第一列包含空格,您可以这样做:

program test
implicit none

character(1024) :: buffer
character(20) :: var1
integer :: pos, var2
real :: var3, var4

read(*,"(A)") buffer
pos = index(buffer, ",")
var1 = buffer(1:pos-1)
read(buffer(pos+1:), *) var2, var3, var4
print *, var1, var2, var3, var4

end program test

通过这种方式,您可以手动拆分受空格影响的字符串部分,并通过 read 语句方便地读取其后的所有内容。如果不仅第一个字段而且其他字段也可以包含空格,则很容易扩展上面的示例以通过 index() 函数在缓冲区中查找所有必要的分隔符。

关于fortran - 如果某些数据包含空格,如何读取逗号分隔的数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485531/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com