【发布时间】:2018-07-17 12:53:06
【问题描述】:
我有一个包含逗号分隔数字的文本文件,如下所示:
757.76019287, 759.72045898, 760.97259521, 763.45477295, 765.99475098, 770.2713623
不知道这个文件中有多少个这样的数字;它会有所不同,但仅限于几百个数字。
目标是:
打开这个文件(比如
customwav.txt)并找出这个文件中有多少个数字 --> 将它们放入一个整数n。将这些数字的内存分配到一个数组中 --> 我已经有子程序可以为我做这件事。
将数字行读入这个分配的数组。
在 Fortran 中执行 1 和 3 的最佳方法是什么?
【问题讨论】:
-
到目前为止您尝试了什么,请添加一个 MWE(最小工作示例)。这种类型的问题(一行上的可变数量的值)已经在这个网站上提出过,请搜索,我想你会找到一些东西。您要解决的问题不仅仅是 Forran90 问题,而是一般 Fortran 问题,对于更广泛的受众,请使用标签
Fortran -
如果您正在生成输入文件,请考虑添加要读取的值的总数,作为数据的第一个值。
-
看来您需要的是一个 CSV 文件阅读器。如果是这样,看看这个Fortran CSV package
-
您需要对某些假设进行限制,例如:行的长度是否有限制。如果有并且有多行,则进行第一遍计算行数,每行中的逗号数和一行中的最大逗号。(num_commas + num_lines = num_values)。然后倒带,分配数组并读取数据。或者,您知道文件大小,因此请保守猜测。给定可用内存,您通常可以大致了解所需的内容;一百万行和一千万个值涵盖了很多可能性,如果你有 8gb 内存,这将是非常少的。