3

我正在使用 fprintf 将字符串附加到文档中,这是我有疑问的行:

fprintf(win, bff[i - 2] != '\n' && bff[i - 2] != '\r' ? "\nmultiscreen=1" : "multiscreen=1");

该代码有效,它附加multiscreen=1到文件中的下一个可用行。

但是,如果我理解正确,它不会NULL在末尾添加一个字符multiscreen=1吗?这是否重要,因为我将它写入文件并且NULL字符串中的尾随是 C 的东西?

还是使用fputs而不是更正确fprintf

4

3 回答 3

7

字符串文字自动将 a0作为最后一个字符。所以你不需要自己添加一个。

NUL终止符仅用于(或您正在使用的fprintf任何字符串函数)知道何时停止从指针写入字符;noNUL实际上曾经写入文件。

是的,我建议您使用fputs而不是,fprintf因为您没有使用任何格式化工具fprintf,除非您在问题的评论中使用pmg的建议,它确实使用了格式化序列。

于 2012-09-27T14:37:37.830 回答
1

您不需要NULL文件中的 。这是一个 C 约定,与文件无关。你很厉害。

于 2012-09-27T14:37:55.683 回答
1

\0如果您写入文件,则不需要尾随。这正是 C 用来分隔字符串的方式,因为否则无法知道字符串的结束位置

于 2012-09-27T14:38:28.173 回答