fprintf 未将"%"写入文件
fprintf not writing "%" to file
所以我正试图将这一行写入文本文件;
sprintf(line, "%d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %sn",
gen_no, total_time,
progp->total_fitness,
progp->entopy_breakdown[0],
progp->entopy_breakdown[1],
progp->entopy_breakdown[2],
progp->entopy_breakdown[3],
progp->entopy_breakdown[4],
progp->entopy_breakdown[5],
progp->entopy_breakdown[6],
0,
tree_as_char);
fprintf(fp, line);
fclose(fp);
除了tree_as_char中有"%",即"%25"符号外,行中的所有内容都写得正确(有时它写一个符号,然后转义正在进行的字符,有时它不写任何符号)。tree_as_char中的所有其他符号都已正确写入文件,打印该行将正确打印%符号。也许我没有在某个地方逃脱?
谢谢!
Phil
fprintf
将把第二个参数中的任何%
符号视为格式化程序。尝试fprintf(fp, "%s", line);
。
天哪,刚刚注意到您正在编写sprintf
,然后调用fprintf
。现在这是没有必要的。您可以通过写以下内容轻松保存sprintf
调用:
fprintf(fp, "%d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %sn",
gen_no, total_time,
progp->total_fitness,
progp->entopy_breakdown[0],
progp->entopy_breakdown[1],
progp->entopy_breakdown[2],
progp->entopy_breakdown[3],
progp->entopy_breakdown[4],
progp->entopy_breakdown[5],
progp->entopy_breakdown[6],
0,
tree_as_char);
这应该有效,并且tree_as_char
字符串中的百分号不会再有任何问题。如果您仍然需要line
var来做其他事情,您可以选择:解析该行,在写入文件指针之前添加辅助%
字符,使用fwrite
、或,更好(也许):使用fputs
:
sprintf(line, "%d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %sn",
gen_no, total_time,
progp->total_fitness,
progp->entopy_breakdown[0],
progp->entopy_breakdown[1],
progp->entopy_breakdown[2],
progp->entopy_breakdown[3],
progp->entopy_breakdown[4],
progp->entopy_breakdown[5],
progp->entopy_breakdown[6],
0,
tree_as_char);
fputs(fp, line);
如果要使用任何*printf
函数打印百分号(%
),则必须转义百分号本身。只需写入%%
即可获得1%:
printf("%d%%", 10);
将打印10%
如果您的tree_as_char
包含百分号,fprintf
只会将其视为占位符,因此您必须首先解析该字符串,并在需要时添加第二个百分号。
相关文章:
- 此代码编译良好,但文件未创建?请指出错误
- Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- 读取文件并将其存储在unordered_map中时出现问题
- 如何使用libav编写.mov文件,如果文件未正确完成,则可以播放
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- C++ 生成文件未检测到 .h 文件中的更改
- 名称具有空格的文件未编译
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- 从文件读取时未将值推回矢量
- 读取文件并将其内容存储到 2-D 数组C++中
- wxWidgets 自动会议设置未将包含目录设置为 -Isystem,而是设置为 -I
- 二叉搜索树未将插入值加载到树中
- 使用重定向命令从 stdin 读入的字符串"<"输入文件未正确附加
- 如何读取文件并将该文件分类为不同类型的数据,这些数据都存储在结构中的特定数组中
- 引入流时C++数据文件未正确读取?
- 转换 mp4 文件并将其流式传输到带有树莓派的查看器
- 如何在Windows窗体应用程序中打开txt文件并将行导入文本框
- C++读取大文件并将其保存到字符串中,然后删除特定的随机单词
- CSV文件未从缓冲区获取数据
- fprintf 未将"%"写入文件