c语言 读入txt数据文件存入数组,并输出
在C语言中,读取文本文件的数据并存储到数组中是一个常见的操作。下面是一个详细的示例,展示了如何从一个文本文件读取数据,存储到数组中,并输出这些数据。
1. 准备工作
假设我们有一个名为data.txt
的文本文件,内容如下:
10 20 30 40 50
每行包含一个整数,我们将这些整数读取到一个数组中,并输出。
2. 示例代码
以下是一个完整的示例代码,演示如何实现这个过程:
c#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 定义数组的最大大小
int main() {
FILE *file;
int numbers[MAX_SIZE]; // 定义数组存储读取的数据
int count = 0; // 记录实际读取的元素数量
int num;
// 打开文件以进行读取
file = fopen("data.txt", "r");
if (file == NULL) {
perror("Error opening file");
return EXIT_FAILURE;
}
// 读取文件中的数据并存储到数组中
while (fscanf(file, "%d", &num) != EOF) {
if (count >= MAX_SIZE) {
fprintf(stderr, "Array size exceeded\n");
fclose(file);
return EXIT_FAILURE;
}
numbers[count++] = num;
}
// 关闭文件
fclose(file);
// 输出数组中的数据
printf("Data read from file:\n");
for (int i = 0; i < count; i++) {
printf("%d\n", numbers[i]);
}
return EXIT_SUCCESS;
}
3. 代码解析
包含头文件:包含必要的头文件
<stdio.h>
和<stdlib.h>
,分别用于输入输出操作和退出程序。定义数组和常量:
MAX_SIZE
:定义数组的最大大小,以避免数组溢出。numbers[MAX_SIZE]
:定义一个整数数组来存储读取的数据。count
:记录实际读取的元素数量。
打开文件:
- 使用
fopen
函数以只读模式打开文件。如果文件无法打开,使用perror
输出错误信息,并退出程序。
- 使用
读取文件数据:
- 使用
fscanf
函数从文件中逐行读取整数。fscanf
返回值为EOF
表示文件结束。 - 如果数组已满,输出错误信息并退出程序。这里使用了
count
变量来跟踪读取的元素数量。
- 使用
关闭文件:
- 使用
fclose
关闭文件,以释放资源。
- 使用
输出数组数据:
- 使用
printf
函数输出数组中的数据。
- 使用
4. 处理文件格式
如果文件的格式更复杂(如包含非整数数据或不同的数据格式),可能需要相应地修改读取和解析逻辑。例如,处理浮点数、字符串等数据类型需要使用不同的格式说明符和处理方式。
5. 错误处理
- 文件打开失败:确保文件路径和名称正确,如果文件不存在或无法访问,会导致
fopen
失败。 - 数组溢出:确保读取的数据量不超过数组的最大大小。可以根据实际需求动态调整数组大小或使用动态内存分配(如
malloc
)。
总结
这个示例展示了如何在C语言中从文本文件读取数据,将其存储到数组中,并输出这些数据。通过使用文件操作函数如fopen
、fscanf
和fclose
,可以高效地处理文本文件中的数据。根据文件格式和数据类型的不同,可能需要相应地调整代码。