我想要一个简单的C程序,它将读取文件并将每行的内容保存到数组元素中。该文件包含所有整数值。每行只有一个整数值。这样,每个整数值都存储在一个数组中。
答案 0 :(得分:0)
在这方面有很多网络资源可以帮助您。快速谷歌搜索pointed me to this example
除了示例的非动态特性之外,还使用scanf执行您想要的操作。
答案 1 :(得分:0)
下面是一个示例,它会根据您的要求进行错误检查,并在读取更多数据时动态调整数组大小。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char ** argv)
{
char buf[512];
FILE * f;
int * array = 0;
size_t array_len = 0, count = 0;
if (argc != 2) {
fprintf(stderr, "Please provide a filename to read\n");
exit(1);
}
f = fopen(argv[1], "r");
if (f == NULL) {
perror("fopen");
exit(1);
}
while (fgets(&buf[0], 512, f) != 0) {
if (count == array_len) {
array_len *= 2;
if (array_len == 0) {
array_len = 32;
}
array = realloc(array, array_len * sizeof(int));
if (array == NULL) {
perror("realloc");
exit(1);
}
}
array[count++] = strtol(buf, 0, 10);
}
return 0;
}