sprintf不复制?

时间:2010-06-20 00:18:29

标签: c

我正在写一个使用system()函数的模糊器,我需要复制:

char a[1100]; /* full of A's with null ending */

成:

char tmp[10000];

我用过:

sprintf(tmp, "%s", a);

当我打印tmp时,没有任何打印。我做错了什么?

2 个答案:

答案 0 :(得分:3)

没有看到整件事情,就没有办法说出你做错了什么。

上述sprintf应该有效,尽管strcpy会更有意义。我猜sprintf工作正常。可能是你的a数组不是“满满的A”,而是一个空字符串(全为零)。或者也许是您的打印要么不起作用,要么无效,但由于某种原因您没有看到输出。

我的赌注是你的a是一个空字符串。没有A在那里。你在哪里以及如何将这些A放入a数组?

答案 1 :(得分:3)

输出通常是行缓冲的。如果您要打印的字符串没有换行符,则可能无法在未先调用fflush的情况下看到它(另请参阅http://c-faq.com/stdio/fflush.html)。但正如AndreyT所说,如果没有看到你的其余代码我们就无法分辨。