我有一个包含浮点数的大文件,我想阅读它们。快速双文件读取C
52.881 49.779 21.641 37.230 23.417 7.506 120.190 1.240 79.167 82.397 126.502 47.377 112.583 124.590 103.339 5.821 24.566 38.916 42.576
这只是文件的开始。它有1000万个数字。
我得到了这段代码,但我不知道如何打印数字。
#include <stdio.h>
#include <stdlib.h>
#include <err.h>
#include <fcntl.h>
#include <sysexits.h>
#include <unistd.h>
int main()
{
int fd;
size_t bytes_read, bytes_expected = 1000000*sizeof(double);
double *data;
char *infile = "file.dat";
if ((fd = open(infile,O_RDONLY)) < 0)
err(EX_NOINPUT, "%s", infile);
if ((data = malloc(bytes_expected)) == NULL)
err(EX_OSERR, "data malloc");
bytes_read = read(fd, data, bytes_expected);
if (bytes_read != bytes_expected)
err(EX_DATAERR, "Read only %d of %d bytes",
bytes_read, bytes_expected);
/* print all */
free(data);
exit(EX_OK);
}
我不需要读你的代码来解决问题'100000000 * sizeof(double)',为什么这个值?为什么SOOOOO巨大?此外,出于多种原因,'bytes_read'不一定等于'bytes_expected',请张贴一些文件的内容。 –
只是一个例子。我可以把它降低。 – zaig
当您打开文件时,您是否看到垃圾字符或格式化的十进制数字? – anonymoose