Có một vài tình huống mà bạn có thể muốn kiểm tra giá trị trả về của printf. Một là để kiểm tra lỗi, như bạn đề cập đến; trong khi thường không có gì bạn có thể làm nếu có một lỗi trên printf, bạn có thể, nếu bạn đang in một cái gì đó thực sự lớn, và nhận được một lỗi, quyết định thử in nó trong khối nhỏ hơn.
Bạn cũng có thể quan tâm đến độ rộng của đầu ra; printf()
trả về số ký tự được viết thành công. Nếu bạn đang cố gắng xếp hàng đầu ra, và bạn thực hiện printf()
với thứ gì đó có chiều rộng thay đổi, bạn có thể kiểm tra giá trị trả về để tìm hiểu số lượng ký tự được in, vì vậy bạn biết bạn đang ở cột nào. Tất nhiên, điều này chỉ hoạt động nếu tất cả các ký tự của bạn là 1 cột rộng (đúng với hầu hết các ký tự ASCII), nhưng có một số trường hợp trong đó điều này có thể hữu ích.
snprintf()
in bằng bộ đệm có kích thước cố định thay vì stdout hoặc tệp.Nó sẽ chỉ in lên đến kích thước của bộ đệm mà bạn cho nó; nhưng có thể nó sẽ đòi hỏi nhiều không gian hơn để in chuỗi đầy đủ. Nó trả về lượng không gian cần thiết để in chuỗi đầy đủ; theo cách này, bạn có thể sử dụng giá trị trả về để cấp phát bộ đệm mới có kích thước phù hợp và thử lại nếu bộ đệm ban đầu của bạn quá nhỏ. Bạn hầu như luôn luôn sử dụng giá trị trả lại là snprintf()
, vì lý do này.
Nguồn
2012-11-23 21:03:58
Đây là ví dụ không đúng, giá trị trả về của printf() đã được kiểm tra ở đâu! – AlexWien