sprintf用\ n写入字符串

时间:2011-11-17 14:16:45

标签: c linux printf

我有这段代码:

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

字符串包含:

"0 a b"

而不是(我想要的):

"0 a b
"

我该如何解决?

注意:我将var字符串的引号置于“以便您可以理解这种情况。

编辑:

问题解决了我在尺寸上添加了1并且工作正常。我不完全理解为什么但它已经解决了

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

看起来它适合我。我在字符串周围添加括号[]来证明它。

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

答案 2 :(得分:1)

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);
}

答案 3 :(得分:0)

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

在您的示例中,字符串实际上包含“0 a b \ n”,这意味着在\n之后打印的任何内容都将显示在下一行。如果你想在它下面留一个空行,你需要另一个换行符。