c语言读取txt文件数据到数组函数
时间: 2024-09-21 16:07:27 浏览: 72
在C语言中,我们可以创建一个函数来从.txt文件中读取数据并存储在一个数组里。这里有一个基本的例子,假设我们想要读取整数并且文件中的数据是以空格分隔的:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc用于动态分配内存
// 定义数组大小,可以根据实际需要调整
#define MAX_LINES 100
#define MAX_LINE_LENGTH 100
// 函数声明
void read_file_to_array(const char* filename, int arr[], int *size);
int main() {
char filename[] = "example.txt"; // 文件名
int* data; // 数组指针
int size;
// 调用函数并获取文件数据
read_file_to_array(filename, &data, &size);
if (size > 0) {
printf("Read %d numbers from file:\n", size);
for (int i = 0; i < size; i++) {
printf("%d ", data[i]);
}
printf("\n");
// 释放内存
free(data);
} else {
printf("Failed to read data.\n");
}
return 0;
}
// 读取文件到数组的函数实现
void read_file_to_array(const char* filename, int arr[], int *size) {
FILE* file = fopen(filename, "r"); // 打开文件
if (file == NULL) {
perror("Error opening file.");
*size = 0;
return;
}
int num = 0;
*size = 0;
while (fgets(arr[num], MAX_LINE_LENGTH, file)) { // 逐行读取
arr[num] = strtol(arr[num], NULL, 10); // 将字符串转换为整数
if (!feof(file) && arr[num] != -1) { // 验证是否成功转换且未达到文件结束
num++;
(*size)++;
} else {
break; // 如果出现问题则停止读取
}
}
arr[num] = 0; // 设置数组结尾标识
fclose(file);
}
```
阅读全文