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

标签 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 *”)时不兼容的指针类型”

最佳答案

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

这是文档: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(),而不是指定字符串的大小。

关于c - 使用 for 循环将 char 数组传递到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881513/

相关文章:

c - mpirun : "alarm clock" 意外返回消息

c - 基于变量初始化状态的逻辑参数

c# - 检查字符串是否不为空且不为空时,顺序重要吗?

ios - “???”显示在 iOS 设备上的字符串中,但不是模拟器

c - 如何在 For 循环中使用多个 Char 数组和 Float 数组?

c - 如何将 .txt 文件的内容复制到 char 数组中?

c - 二叉搜索树在C中从txt导入名称问题

c++ - 使用具有 string.reserve() 的字符串实例化结构

java - 循环 jaxb marshall

javascript - 从对象数组添加标记