用C语言将txt文件中的内容按行存入数组
时间: 2024-02-23 11:00:07 浏览: 307
可以按照以下步骤读取txt文件并将每行内容存入数组中:
1. 打开txt文件
```
FILE *fp;
fp = fopen("filename.txt", "r");
```
2. 获取文件中行数并创建对应长度的数组
```
int count = 0;
char ch;
while ((ch = fgetc(fp)) != EOF) {
if (ch == '\n') {
count++;
}
}
rewind(fp); // 将文件指针重置到文件开头
char **lines = (char **)malloc(count * sizeof(char *));
for (int i = 0; i < count; i++) {
lines[i] = (char *)malloc(100 * sizeof(char)); // 假设每行最多100个字符
}
```
3. 读取每行内容并存入数组中
```
int i = 0;
while (fgets(lines[i], 100, fp) != NULL) {
i++;
}
```
4. 关闭文件
```
fclose(fp);
```
需要注意的是,上述代码中的每行最多100个字符,如果实际行长超过100,需要根据实际情况调整数组长度,并且要确保数组长度足够大,否则会发生数组越界的错误。另外,上述代码中的数组是一个二维字符数组,每个元素存储一行内容,如果需要对每行内容进行处理,可以使用对应的字符串处理函数。
相关问题
c语言把in.txt文件中第一行数据存入数组a,把文件中第二行数据存入数组b
你可以参考以下代码实现:
```c
#include <stdio.h>
#define MAX_LEN 100 // 数组最大长度
int main() {
FILE *fp;
int a[MAX_LEN], b[MAX_LEN];
int i = 0;
fp = fopen("in.txt", "r"); // 打开文件
if (fp == NULL) { // 判断文件是否打开成功
printf("Failed to open file!");
return -1;
}
// 读取第一行数据
while (fscanf(fp, "%d", &a[i]) != EOF) {
i++;
}
i = 0;
// 读取第二行数据
while (fscanf(fp, "%d", &b[i]) != EOF) {
i++;
}
fclose(fp); // 关闭文件
return 0;
}
```
在实现过程中,我们首先通过 `fopen()` 函数打开指定文件,然后通过 `fscanf()` 函数读取文件中的数据并存入数组中,最后通过 `fclose()` 函数关闭文件。需要注意的是,我们使用了 `while` 循环来读取文件中的每一行数据,直到读取到文件结尾(EOF)。
c语言读取txt文件并存入结构体数组
C语言可以通过以下步骤来读取txt文件并存入结构体数组。
首先,我们需要定义一个结构体类型,用来表示txt文件中的数据。假设我们要读取的txt文件中的每一行包含学生的姓名和年龄,我们可以定义一个名为Student的结构体类型,包含name和age两个成员变量。
```c
typedef struct {
char name[50];
int age;
} Student;
```
然后,我们需要打开文件并读取其中的数据。可以使用标准库函数`fopen`来打开txt文件,使用`fgets`函数逐行读取文件内容,并使用`sscanf`函数将读取到的数据存入结构体数组中。
```c
FILE *file = fopen("students.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return;
}
Student students[100]; // 假设最多有100个学生
int count = 0; // 记录读取到的学生个数
char line[100];
while (fgets(line, sizeof(line), file) != NULL) {
sscanf(line, "%s%d", students[count].name, &students[count].age);
count++;
}
fclose(file);
```
最后,我们需要关闭文件,并可以通过遍历数组输出读取到的数据,以验证读取是否成功。
```c
for (int i = 0; i < count; i++) {
printf("姓名:%s,年龄:%d\n", students[i].name, students[i].age);
}
```
以上就是用C语言读取txt文件并存入结构体数组的基本步骤。读者可以根据实际需求对代码进行修改和优化。
阅读全文