我有一個緩衝區,我通過串口接收。當我收到一個特定的字符時,我知道完整的一行已經到達,我想用printf
方法打印它。但是,每一行都有不同的長度值,當我只是去:printf緩衝區中char的長度通過C
printf("%s", buffer);
我打印的行加上屬於前行額外的字符(如果它比當前的更長)。
我看過here,至少在C++中,給出一個%s
可以告訴多少字符,但它沒有例子,我不知道如何在C中做任何幫助。 ?
編輯:完美。所以,我有三種解決方案: - 由字符打印字符用for
循環 - 使用終止字符 - 或使用*
問題是:哪一個是更快?因爲我正在使用微芯片PIC,所以我希望它儘可能快地發生。
當您收到的* 「某些字符」 *並將它添加到'buffer',追加空字符('\ 0')爲好。這個「告訴」'sprintf()'何時停止打印字符。 –