我刚刚学习如何使用文件 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/