Tengo un búfer que recibo a través de un puerto serie. Cuando recibo un cierto caracter, sé que ha llegado una línea completa, y quiero imprimirlo con el método printf
. Sin embargo, cada línea tiene un valor de longitud diferente, y cuando acabo de ir con:Printf un búfer de char que pasa la longitud en C
printf("%s", buffer);
estoy imprimir la línea más caracteres adicionales pertenecientes a la antigua línea (si era más largo que el actual).
He leído here que es posible, al menos en C++, decir cuántos caracteres desea leer dado un %s
, pero no tiene ejemplos y no sé cómo hacerlo en C. Cualquier ayuda ?
EDIT: Perfecto. Así que tengo tres soluciones: - impresión de carbón por carbón con un bucle for
- usando el carácter de terminación - o el uso de *
pregunta es:. ¿Cuál es más rápido? Como estoy trabajando en un PIC de microchip y quiero que ocurra lo más rápido posible
Cuando ha recibido de que * "cierto carácter" * y se estampan a 'buffer', anexar un carácter nulo ('\ 0') también. Esto "dice" 'sprintf()' cuándo dejar de imprimir caracteres. –