c语言中怎么将txt文件中的内容读入数组
时间: 2024-03-01 14:53:58 浏览: 170
好的,让我来回答你的问题。在C语言中,可以使用文件操作函数来读取文本文件中的内容,并将其保存到数组中。以下是一个读取txt文件内容并存入数组的示例程序:
```
#include <stdio.h>
int main() {
FILE *fp;
char filename[] = "data.txt";
int arr[100]; // 假设最多有100个数字
int i, num;
// 打开文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return 1;
}
// 读取文件内容并存入数组
i = 0;
while (fscanf(fp, "%d", &num) == 1) {
arr[i++] = num;
}
// 关闭文件
fclose(fp);
// 输出数组中的内容
for (int j = 0; j < i; j++) {
printf("%d ", arr[j]);
}
printf("\n");
return 0;
}
```
这个程序假设待读取的txt文件名为"data.txt",并将文件中的数字存入一个名为arr的整型数组中。程序中通过fopen函数打开文件,然后使用while循环和fscanf函数逐个读取文件中的数字,并将它们存入数组中。最后,程序使用for循环遍历数组并输出其中的内容。
需要注意的是,程序中的数组大小是100,如果文件中的数字超过了100个,程序可能会出现错误。如果你不知道文件中数字的数量,可以使用动态内存分配来动态创建数组。例如,可以使用malloc函数在运行时动态分配内存,如下所示:
```
#include <stdlib.h>
int *arr = malloc(sizeof(int) * num_count);
```
其中,num_count是文件中数字的数量,这样就可以动态创建一个大小为num_count的整型数组了。需要注意的是,在使用完数组后,需要使用free函数释放动态分配的内存:
```
free(arr);
```
阅读全文