c语言逐行读取数据并交替储存
时间: 2024-10-21 20:01:33 浏览: 24
C语言从txt文件中逐行读入数据存到数组中的实现方法
在C语言中,如果你想逐行读取数据并交替存储,可以使用`fgets`函数配合文件操作来实现。这里有一个简单的例子,假设你要读取一个文本文件,其中每一行的数据代表一对需要交替存储的内容:
```c
#include <stdio.h>
#include <stdlib.h> // 引入malloc处理内存
#define MAX_LINES 100 // 最大行数限制
#define MAX_LINE_LENGTH 50 // 每行数据最大长度
// 结构体用于存储交替的数据
typedef struct {
char data1[MAX_LINE_LENGTH];
char data2[MAX_LINE_LENGTH];
}交替数据;
交替数据* read_alternate_data(char *filename) {
FILE *file = fopen(filename, "r"); // 打开文件
if (file == NULL) {
perror("Failed to open file");
return NULL;
}
交替数据 *data = malloc(MAX_LINES * sizeof(交替数据)); // 分配内存
if (data == NULL) {
perror("Memory allocation failed");
fclose(file);
return NULL;
}
int index = 0; // 用于记录当前读到的数据行数
while (!feof(file)) { // 遍历文件直到结束
fgets(data[index].data1, MAX_LINE_LENGTH, file); // 读取第一行数据
if (fgets(data[index].data2, MAX_LINE_LENGTH, file) != NULL) { // 如果第二行存在,则读取
index++;
} else {
break; // 如果遇到空行或文件结束,跳出循环
}
}
fclose(file);
return data;
}
void print_data(交替数据 *data, int size) {
for (int i = 0; i < size && i % 2 == 0; i++) {
printf("%s\n%s\n", data[i].data1, data[i].data2);
}
}
int main() {
alternating_data *data = read_alternate_data("input.txt");
if (data) {
print_data(data, data_size);
free(data); // 释放内存
} else {
printf("No data read.\n");
}
return 0;
}
```
阅读全文