【发布时间】:2023-06-15 14:18:01
【问题描述】:
我想要一个简单的 C 程序,它将读取一个文件并将每一行的内容保存到一个数组元素中。该文件包含所有整数值。每行只有一个整数值。这样每个整数值都被存储在一个数组中。
【问题讨论】:
我想要一个简单的 C 程序,它将读取一个文件并将每一行的内容保存到一个数组元素中。该文件包含所有整数值。每行只有一个整数值。这样每个整数值都被存储在一个数组中。
【问题讨论】:
这是一个示例,它可以满足您的要求,具有错误检查功能,并在读取更多数据时动态调整数组大小。
#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;
}
【讨论】:
在这方面有很多网络资源可以帮助您。快速谷歌搜索pointed me to this example
除了示例的非动态特性之外,它还可以使用 scanf 完成您想要的操作。
【讨论】: