Các printf
và scanf
gia đình của các chức năng trong C tiêu thụ một số ít các định dạng specifiers nguyên thủy tương ứng với các kiểu dữ liệu cơ bản – %d
cho int
, %llu
cho unsigned long long int
vvPosix có cung cấp các chuỗi định dạng chuỗi cho printf/scanf không?
Tuy nhiên, có một số lượng lớn các loại tiêu chuẩn các bí danh mà người ta muốn sử dụng trong thực tế, chẳng hạn như int32fast_t
và một người không thể và không cần phải biết loại cơ bản cơ bản. Đối với các bí danh trong stdint.h
, tiêu chuẩn C may mắn xác định một tập hợp các macro để tạo ra các định dạng chuỗi tương ứng, như PRI32
, trong inttypes.h
.
Có một bộ tương tự như các macro cho Posix? Posix có tấn của các loại đục như ssize_t
, pid_t
, rlim_t
, suseconds_t
, vv, đó là tất cả các biến thể trên các loại intgral cơ bản. Làm thế nào một người có thể sử dụng một cách hiệu quả các loại đó trong các chuỗi định dạng?
nếu mọi thứ khác không thành công, bạn luôn có thể chuyển đổi thành '(u) intmax_t' và in – Christoph
Cách giải quyết thú vị - Tôi không bao giờ nghĩ về điều đó: -S –
(Mặc dù đi ngược lại, tức là' scanf', tôi phải làm một kiểm tra tràn bằng tay và tìm ra những gì để so sánh một cách chính xác.) –