C语言按行读入txt文件代码,将每行数据保存入数组
时间: 2023-04-05 11:00:28 浏览: 79
你好,可以使用以下代码实现:
```c
#include <stdio.h>
#define MAX_LINE_LENGTH 1000 // 假设每行最多1000个字符
int main() {
FILE *fp;
char line[MAX_LINE_LENGTH];
int i = 0;
fp = fopen("data.txt", "r"); // 打开文件
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) { // 逐行读取文件
printf("第%d行:%s", i+1, line); // 输出每行内容
i++;
}
fclose(fp); // 关闭文件
return 0;
}
```
以上代码会按行读取名为"data.txt"的文件,将每行数据保存在字符数组line中,然后输出每行内容。
相关问题
C语言按行读入txt文件代码,将每行数据保存入整数数组
你好,可以使用以下代码实现按行读取txt文件并将每行数据保存到整数数组中:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LINE_LENGTH 100 // 假设每行最多100个字符
int main() {
FILE *fp;
char line[MAX_LINE_LENGTH];
int nums[MAX_LINE_LENGTH];
int i = 0;
fp = fopen("data.txt", "r"); // 打开文件
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) { // 逐行读取文件
nums[i] = atoi(line); // 将字符串转换为整数并保存到数组中
i++;
}
fclose(fp); // 关闭文件
// 输出数组中的数据
for (int j = 0; j < i; j++) {
printf("%d ", nums[j]);
}
printf("\n");
return 0;
}
```
以上代码假设数据文件名为"data.txt",每行数据为一个整数,每行最多100个字符。程序逐行读取文件,将每行数据转换为整数并保存到数组中,最后输出数组中的数据。
用C语言写段代码,要求实现从文件读入数据作为结构体数据
好的,以下是一个简单的示例代码,可以从文件中读入数据并存储到结构体中:
```c
#include <stdio.h>
#define MAX_NUM 100
struct student {
char name[20];
int age;
float score;
};
int main() {
FILE *fp;
struct student stus[MAX_NUM];
int i, n;
// 打开文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Error: cannot open the file!\n");
return -1;
}
// 读入数据
n = 0;
while (fscanf(fp, "%s %d %f", stus[n].name, &stus[n].age, &stus[n].score) == 3) {
n++;
}
// 输出数据
printf("Read %d records from file:\n", n);
for (i = 0; i < n; i++) {
printf("Name: %s, Age: %d, Score: %.2f\n", stus[i].name, stus[i].age, stus[i].score);
}
// 关闭文件
fclose(fp);
return 0;
}
```
这个示例代码中,我们定义了一个结构体 `student`,用于存储学生的姓名、年龄和成绩。然后在 `main()` 函数中,我们定义了一个结构体数组 `stus[MAX_NUM]`,用于存储从文件中读入的数据。我们首先打开文件 `data.txt`,然后使用 `fscanf()` 函数逐行读入数据,并保存到结构体数组中。最后输出读入的数据,并关闭文件。