我有一段代码需要阅读"%"来自char数组的字符,并使用fprintf_s;
将其写入文件FILE *fp = <some valid file ptr>;
char sBuf = " %Demo";
fprintf_s(fp, szBuf);
这里的问题是,fprintf_s在读取%时断言(很可能是因为它没有找到有效的格式说明符)。 有没有办法写&#34;%&#34;文件中的字符?如果不是通过调整上面的代码,那么听到其他选项会很棒。
答案 0 :(得分:1)
永远不要将计算字符串用作printf
/ fprintf_s(fp, "%s", szBuf);
函数族的格式参数。
使用:
fwrite
...或直接使用{{1}},因为您实际上并未在此处格式化任何内容。
答案 1 :(得分:0)
您可以使用printf
系列功能支持的格式 - 使用%%
打印%
。
char const* sBuf = " %%Demo";
另一种不太直接的方法是使用%c
打印%
。
char const* sBuf = " %cDemo";
fprintf_s(fp, sBuf, '%');