我有以下代码:
void main()
{
// Ask user for input file name
char file_name[100];
printf("File Name?: \n");
fgets(file_name, 100, stdin);
printf("Your input: %s", file_name);
processFile(file_name);
}
用于获取需要读取的输入文件的值。然后在processFile函数中,我执行以下操作:
void processFile(char *file_name)
{
FILE *in = fopen(file_name,"r");
}
但我收到了分段错误(核心转储)。我不明白为什么。
由于
答案 0 :(得分:-1)
换行符使fgets停止读取,但它被函数视为有效字符,并包含在复制到str的字符串中。
http://www.cplusplus.com/reference/cstdio/fgets/
尝试
scanf("%s", file_name);