将字符串从fgets传递到函数并在其中使用它

时间:2013-02-23 21:45:47

标签: c segmentation-fault

我有以下代码:

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

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

由于

1 个答案:

答案 0 :(得分:-1)

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

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

尝试

 scanf("%s", file_name);