c语言如何读取txt文件并输出
时间: 2023-09-03 18:16:50 浏览: 64
在C语言中,可以使用标准库函数`fopen`打开一个文本文件,然后使用`fscanf`或`fgets`等函数逐行读取文件内容并输出。
以下是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[1024];
fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return -1;
}
while (fgets(buffer, 1024, fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
```
其中,`fopen`函数打开文件并返回文件指针,第一个参数是文件名,第二个参数是打开方式,"r"表示只读模式。如果打开失败,返回值为NULL。
`fgets`函数每次读取一行文本内容,第一个参数是读取到的内容存放的缓冲区,第二个参数是缓冲区大小,第三个参数是文件指针。
最后,要记得使用`fclose`函数关闭文件。
相关问题
c语言读取txt文件内容并输出到txt文件
以下是将一个文本文件的内容读取到内存中,然后将其重新写入到另一个文本文件中的基本示例代码:
```c
#include <stdio.h>
#define BUFFER_SIZE 1024
int main() {
FILE *input_file, *output_file;
char buffer[BUFFER_SIZE];
// 打开输入文件
input_file = fopen("input.txt", "r");
if (input_file == NULL) {
perror("无法打开输入文件");
return 1;
}
// 打开输出文件
output_file = fopen("output.txt", "w");
if (output_file == NULL) {
perror("无法打开输出文件");
return 1;
}
// 读取输入文件并写入输出文件
while (fgets(buffer, BUFFER_SIZE, input_file) != NULL) {
fputs(buffer, output_file);
}
// 关闭文件
fclose(input_file);
fclose(output_file);
return 0;
}
```
在这个示例中,我们首先定义了一个名为 `BUFFER_SIZE` 的常量,用于定义我们读取文件时使用的缓冲区大小。然后我们通过 `fopen` 函数打开输入文件和输出文件,如果无法打开文件,则会在屏幕上输出错误消息并返回错误代码。接下来,我们使用 `fgets` 函数逐行读取输入文件的内容,并使用 `fputs` 函数将其写入输出文件。最后,我们关闭文件并返回 0 表示程序成功结束。
需要注意的是,此代码仅适用于读取和写入普通的文本文件。如果需要处理二进制文件或需要进行更复杂的文件操作,可能需要使用其他函数。
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文件并存入结构体数组的基本步骤。读者可以根据实际需求对代码进行修改和优化。