Tôi có một bộ đệm mà tôi nhận được thông qua một cổng nối tiếp. Khi tôi nhận được một caracter nhất định, tôi biết một dòng đầy đủ đã đến, và tôi muốn in nó với phương pháp printf
. Nhưng mỗi dòng có một giá trị độ dài khác nhau, và khi tôi chỉ đi với:Printf một bộ đệm của char đi qua chiều dài trong C
printf("%s", buffer);
Tôi đang in dòng cộng thêm ký tự thuộc dòng cũ (nếu nó dài hơn dòng cũ).
Tôi đọc here rằng có thể, ít nhất là trong C++, để biết số lượng ký tự bạn muốn đọc là %s
, nhưng không có ví dụ và tôi không biết cách thực hiện trong C. ?
EDIT: Hoàn hảo. Vì vậy, tôi có ba giải pháp: - in char bởi char với một for
loop - sử dụng các ký tự kết thúc - hoặc sử dụng *
CÂU HỎI LÀ:. Cái nào nhanh hơn? Bởi vì tôi đang làm việc trên một vi mạch PIC và tôi muốn nó xảy ra càng nhanh càng tốt
Khi bạn đã nhận rằng * "nhân vật nào đó" * và đã gắn nó cho 'buffer', nối thêm một ký tự null (' \ 0') là tốt. Điều này "cho biết" 'sprintf()' khi dừng các ký tự in. –