2016-07-28 103 views
1

我有一个带有实数的大文件,我需要以最快的方式将它们读入双精度文件。从C++中读取文件的最快速方法

我可以选择文件的自己的格式(1号线或多个例如)

试图scanf,似乎慢,试图gets(s)然后给出了大致相同的时间解析双打自己。

有没有更快的方法?

+0

你需要把它们写成文本吗?你能写出原始字节吗? – Cornstalks

+2

让我们清楚。如果你有行,你有ASCII,如果你有ASCII,你就没有文件中的双打:你有*实数*的ASCII格式。双打是转换的结果。 – EJP

+0

@Cornstalks我不需要写他们,我需要使用它们作为双打后 – Herokiller

回答

0

尝试从原始二进制文件读取。这是最快的。

:如果要填充1000个值的两个阵列xy然后将数据以二进制文件应包含从时隙1000-2000从时隙0-1000和y值x值。该命令是fread。不要忘记,元素的大小在这里是64位= 8字节,类型为double

+0

原始二进制文件不会有行。字节0-8000将是前1000个双打。然后你可以在一次调用中将它们直接放入数组中。 –

+0

谢谢!只是编辑它。 –

相关问题