如何阅读"%" char数组中的字符并使用fprintf_s将其写入文件?

时间:2017-04-21 15:33:32

标签: c++ special-characters

我有一段代码需要阅读"%"来自char数组的字符,并使用fprintf_s;

将其写入文件
FILE *fp = <some valid file ptr>;
char sBuf = " %Demo";
fprintf_s(fp, szBuf);

这里的问题是,fprintf_s在读取%时断言(很可能是因为它没有找到有效的格式说明符)。 有没有办法写&#34;%&#34;文件中的字符?如果不是通过调整上面的代码,那么听到其他选项会很棒。

2 个答案:

答案 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, '%');