我正在使用fprintf将一个字符串附加到文档中,这是我有一个问题的行:
fprintf(win, bff[i - 2] != '\n' && bff[i - 2] != '\r' ? "\nmultiscreen=1" : "multiscreen=1");
代码有效,它会将multiscreen=1
追加到文件中的下一个可用行。
但是,如果我理解正确,那么不会在NULL
的末尾添加multiscreen=1
字符吗?
这是否重要,因为我将它写入文件并且字符串中的尾随NULL
是C的东西?
或者使用fputs
代替fprintf
更正确吗?
答案 0 :(得分:5)
字符串文字自动将0
作为其中的最后一个字符。所以你不需要自己添加一个。
NUL
终止符仅用于fprintf
(或者您正在使用的任何字符串函数)以知道何时停止从指针写入字符;实际上没有NUL
写入文件。
是的,我建议您使用fputs
代替fprintf
,因为您没有使用fprintf
的任何格式设置,除非您在评论中使用pmg的建议使用格式化序列的问题。
答案 1 :(得分:1)
您不需要文件中的NULL
。这是一个C约定,与文件无关。你很好。
答案 2 :(得分:1)
如果您写入文件,则不需要尾随\0
。它只是C用于分隔字符串的方式,因为否则无法知道字符串的结束位置