使用fgets
函数
读取多行文件的方法如下:
#include <stdio.h>
#define MAX_LINE_LENGTH 100
int main() {
FILE *file;
char line[MAX_LINE_LENGTH];
// 打开文件
file = fopen("input.txt", "r");
if (file == NULL) {
printf("文件打开失败。\n");
return 1;
// 逐行读取文件内容
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
printf("%s", line);
// 关闭文件
fclose(file);
return 0;
代码中,首先定义了一个常量MAX_LINE_LENGTH
来表示每行的最大长度。然后使用fopen
函数打开文件,如果文件打开失败,则打印错误消息并返回。接下来使用fgets
函数逐行读取文件内容,直到文件末尾。每次读取一行后,通过printf
函数打印该行内容。最后使用fclose
函数关闭文件。
另外,如果要使用sscanf函数读取多行文件,可以按照以下代码示例进行操作:
#include <stdio.h>
#define MAX_LINE_LENGTH 100
int main() {
FILE *file;
char line[MAX_LINE_LENGTH];
char name[MAX_LINE_LENGTH];
int age;
// 打开文件
file = fopen("input.txt", "r");
if (file == NULL) {
printf("文件打开失败。\n");
return 1;
// 逐行读取文件内容,并使用sscanf解析每行的数据
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
sscanf(line, "%s %d", name, &age);
printf("姓名:%s,年龄:%d\n", name, age);
// 关闭文件
fclose(file);
return 0;
代码中,除了定义了常量MAX_LINE_LENGTH
和文件指针file
外,还定义了两个字符数组name
和整型变量age
,分别用于存储每行中的姓名和年龄。在使用sscanf
函数时,可以按照具体的文件内容格式进行解析,并使用相应的变量接收解析结果。最后使用printf
函数打印解析的结果。
以上是使用fgets和sscanf函数读取多行文件的解决方法,可以根据具体的需求进行相应的修改和扩展。