使用for循环将char数组传递到文件

时间:2019-04-27 14:22:26

标签: c string for-loop file-io char

我只是在学习如何使用文件IO,可能我错了。我需要创建一个城市名称及其人口密度列表并将其写入文件,我可以使用for循环将列表以标准输出格式正确打印出来,但无法将其写入文件中。就像我在使用printf语句时所说的那样,它可以正常工作,但是(fopen,“ w”)fprintf无法正常工作。我要去哪里错了?

   printf("Create new file name:\n");
   scanf("%s", outfile);

   fp = fopen(outfile, "w");
   for(i=0;i<10;i++){
        fprintf("%s  %.2f\n", veg[i].name, density );
    }



    fclose(fp);

我希望该文件填充城市列表,但我却是程序崩溃了。我收到此错误消息。

“不兼容的指针类型,将'char [10]'传递给'FILE *'类型的参数(又名'struct __sFILE *')”

1 个答案:

答案 0 :(得分:1)

您需要指定要在fprintf()调用中写入的文件。 fprintf(outfile,"%s %.2f\n", veg[i].name, density );

这是文档:https://en.cppreference.com/w/c/io/fprintf

您还需要返回fopen是否失败。

if (fp != NULL)
{
    printf("File created successfully!\n");
}
else {
    printf("Unable to create file.\n");
    exit(EXIT_FAILURE);

}

请注意,如果使用Visual Studio,则必须在必须指定字符串大小的地方使用fprintf_s()