在这个程序中,由于行,我遇到了段错误:
fgets( string , 50, in );
如果我将其注释掉,程序可以正常退出,但我不确定我做错了什么? 我检查了函数 fgets 的声明,它似乎适合该程序。
//char *fgets(char *str, int n, FILE *stream)
#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE *in;
char string[100];
in = fopen("in.txt", "r" );
// if i remove this line segmentation fault is no more.
fgets( string , 50, in );
fclose(in);
return 0;
}
最佳答案
fopen()
可能没有成功,在尝试读取之前检查它的返回值。
关于正确使用fgets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22078697/