【发布时间】:2020-11-27 14:29:50
【问题描述】:
我有一个文件,每行都有数字。我正在尝试使用 read() 函数将从文件中读取的数据写入 int 数组。我可以读取文件并将其打印到终端。我怎样才能得到我读入 arr 数组的数字?
这是我的代码
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
int main() {
int len, fd,arr[10000],i=0;
fd = open("1.txt", O_RDONLY);
if (fd >= 0) {
while(read(fd, &len, sizeof(int)) > 0){
write(1, &len, sizeof(int));
}
}
close(fd);
return 0;
}
【问题讨论】:
-
你的意思是要读取文本文件,其中的数字是用字符串表示的?
-
是的,然后我想在读完后写入数组
-
read(fd, arr, len * sizeof *arr)。直接读入数组即可。无需阅读和复制。 -
但是
read(fd, &len, sizeof len)真的是你想要的吗?如果这是一个文本文件,那很可能不是你想要的。 -
你几乎肯定想要
fread/strtol或scanf的味道
标签: c file posix low-level-io