我有一个带有实数的大文件,我需要以最快的方式将它们读入双精度文件。从C++中读取文件的最快速方法
我可以选择文件的自己的格式(1号线或多个例如)
试图scanf
,似乎慢,试图gets(s)
然后给出了大致相同的时间解析双打自己。
有没有更快的方法?
我有一个带有实数的大文件,我需要以最快的方式将它们读入双精度文件。从C++中读取文件的最快速方法
我可以选择文件的自己的格式(1号线或多个例如)
试图scanf
,似乎慢,试图gets(s)
然后给出了大致相同的时间解析双打自己。
有没有更快的方法?
尝试从原始二进制文件读取。这是最快的。
例:如果要填充1000个值的两个阵列x
和y
然后将数据以二进制文件应包含从时隙1000-2000从时隙0-1000和y值x值。该命令是fread
。不要忘记,元素的大小在这里是64位= 8字节,类型为double
。
原始二进制文件不会有行。字节0-8000将是前1000个双打。然后你可以在一次调用中将它们直接放入数组中。 –
谢谢!只是编辑它。 –
你需要把它们写成文本吗?你能写出原始字节吗? – Cornstalks
让我们清楚。如果你有行,你有ASCII,如果你有ASCII,你就没有文件中的双打:你有*实数*的ASCII格式。双打是转换的结果。 – EJP
@Cornstalks我不需要写他们,我需要使用它们作为双打后 – Herokiller