我一直在研究如何使用fgets函数,因此我编写了以下代码:
#include <stdio.h>
void main(int argc, char** argv)
{
if (argc == 2)
{
FILE* file = fopen(argv[1], "r");
if (file != NULL)
{
char line[100];
while (fgets(line, sizeof(line), file))
{
printf("%s", line);
}
}
}
}
我用以下程序编译程序:
gcc main.c
并运行:
./a.out textdoc.txt
文件textdoc.txt有一些乱码(不为空):
ageagea gea g
geagae g g g g
eagae ge g ga a a fea
gea hr hr a faw
我注意到的是,当我到达代码的fgets()行时,出现了分段错误。
谁能告诉我这是什么问题?