0

我有以下代码:

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");
}

但是我遇到了分段错误(核心转储)。我不明白为什么。

谢谢

4

1 回答 1

-1

换行符使 fgets 停止读取,但它被函数视为有效字符并包含在复制到 str 的字符串中。

http://www.cplusplus.com/reference/cstdio/fgets/

尝试

 scanf("%s", file_name);
于 2013-02-23T21:56:37.647 回答