我有一个缓冲区,我通过串口接收。当我收到一个特定的字符时,我知道完整的一行已经到达,我想用printf
方法打印它。但是,每一行都有不同的长度值,当我只是去:printf缓冲区中char的长度通过C
printf("%s", buffer);
我打印的行加上属于前行额外的字符(如果它比当前的更长)。
我看过here,至少在C++中,给出一个%s
可以告诉多少字符,但它没有例子,我不知道如何在C中做任何帮助。 ?
编辑:完美。所以,我有三种解决方案: - 由字符打印字符用for
循环 - 使用终止字符 - 或使用*
问题是:哪一个是更快?因为我正在使用微芯片PIC,所以我希望它尽可能快地发生。
当您收到的* “某些字符” *并将它添加到'buffer',追加空字符('\ 0')为好。这个“告诉”'sprintf()'何时停止打印字符。 –