sprintf用\ n 写入string

我有这个代码:

str1= "a"; str2= "b"; sprintf(string, "0 %s %s\n", str1, str2); 

string然后包含:

  “0 ab” 

而不是(我想要的):

  “0 ab
 “ 

我该如何解决这个问题?

注意:我把varstring的引用放在“里面”,这样你就可以理解这个情况了。

编辑:

解决的问题我加了1的大小,它的工作。 我不完全明白为什么,但解决了

如果您在Windows计算机上,则可能需要\r\n而不是仅换行符。 图书馆应该处理它。

看起来像它为我工作。 我把括号[]括在字符串中来证明它。

看看这里: http : //ideone.com/3rbwF

string分配足够的空间

 #include <stdio.h> #include <stdarg.h> main() { char string[7]; char str1[] = "a"; char str2[] = "b"; sprintf(string, "0 %s %s\n", str1, str2); printf("%s", string); } 

这听起来像你想要的是sprintf(string, "0 %s %s\n\n", str1, str2);

在你的例子中,字符串实际上包含“0 ab \ n”,这意味着在\n之后打印的任何东西都会出现在下一行。 如果你想要一个下面的空行,你需要另一个换行符。