C printf输出到变量

时间:2013-07-01 19:43:22

标签: c libc

我正在尝试循环数据包[bytes]并将结果放入变量中,但是我坚持了几个小时才把它变成变量。

这是有效的,只是输出它。我已经尝试过strcat,strcpy和sprintf将输出放入变量并且没有成功。建议我做什么,因为我迷路了,谢谢:)。

i = 54;
do {
 printf("%c", Buffer[i]);
 i++;
} while(i != Size);

1 个答案:

答案 0 :(得分:2)

这段代码中的一部分应该会有所帮助,但是您提出了一个非常不明确的问题,并且很难理解您确实想要做什么。

BTW,你可以看到Buffer这里没有初始化(实际上所有这些都是因为其他人依赖于Buffer。它的目的是要输出一些数据。

#include <stdio.h>

int main(int argc, char **argv)
{
    const int Size = 100;
    unsigned char Buffer[Size];
    unsigned char OutBuffer[Size];
    unsigned char PrnBuffer[Size*3];

    /* I have understanding you tried to output chars to OutBuffer but
       you just need to iterate OutBuffer bytes the same way... */
    int i = 54;
    int j = 0;
    do {
        sprintf(&(OutBuffer[j]), "%c", Buffer[i]);
        /* But why simply not outBuffer[j] = Buffer[i]; ?? */
        i++;
        j++;
    } while(i != Size);

    /* And now print this trash... */
    for (i = 0; i < j; ++i)
    {
        sprintf(&(PrnBuffer[i*3]), "%02x ", OutBuffer[i]);
    }
    printf("%d: %s\n", j, PrnBuffer);

    return 0;
}