我有一個包含浮點數的大文件,我想閱讀它們。快速雙文件讀取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