格式化字符串的大小

金剛狼

我很難理解在snprintf. 假設我有兩個數字:

int i =11; int k = 3;

我想像這樣格式化它們"[%02d] %03d\t"並使用snprintf. 之後我將結果字符串與write().

snprintf需要長度/字節數 n。我不明白我需要提供的長度是多少……我有兩個理論:

a) 它是

sizeof(int)*2

b)我通過計算兩個整數的數字並添加輸出將具有的其他字符來檢查格式化字符串將包含多少個字符:

2*sizeof(char) + 1*sizeof(char) + 2*sizeof(char) + 3*sizeof(char)+ 1*sizeof(char)

-> i 的數字 + k 的數字 + 添加到第一個 int 的零 + 添加到第二個 int + tab 的零

我正在努力理解我必須給予的“n”是什麼 snprintf

火焰

這是緩衝區大小

根據文檔

要在緩衝區中使用的最大字節數。生成的字符串的長度最多為 n-1,為附加的終止空字符留出空間。size_t 是無符號整數類型。

假設您寫入這樣的數組:

char buf[32];

緩衝區可以容納 32 個字符(包括空終止符)。因此我們這樣調用函數:

snprintf (buf, 32, "[%02d] %03d\t", i, k); 

您還可以檢查返回值以查看已寫入(或將已寫入)的字符數。在這種情況下,如果它大於 32,則意味著必須丟棄某些字符,因為它們不適合。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

格式化日期字符串

来自分类Dev

格式化字符串与串联

来自分类Dev

查找格式化的字符串

来自分类Dev

从字符串格式化日期

来自分类Dev

格式化日期字符串

来自分类Dev

需要格式化字符串

来自分类Dev

VBA格式化字符串

来自分类Dev

utcnow 的字符串格式化

来自分类Dev

Python 格式化字符串

来自分类Dev

以XML格式格式化资源中的字符串

来自分类Dev

Swift格式化本地化字符串

来自分类Dev

Scala格式化程序无法序列化区分大小写的json字符串

来自分类Dev

时间格式化和从字符串转换

来自分类Dev

快速进行Python字符串格式化

来自分类Dev

Windows curl字符串格式化

来自分类Dev

python字符串格式化行中的列

来自分类Dev

在C中找到格式化字符串的长度

来自分类Dev

格式化字典的python文档字符串

来自分类Dev

快速进行Python字符串格式化

来自分类Dev

在Scala中格式化JSON字符串

来自分类Dev

python-格式化字符串

来自分类Dev

通过插入':'来格式化字符串

来自分类Dev

如何从函数返回格式化的字符串?

来自分类Dev

格式化字符串时,%df代表什么?

来自分类Dev

如何格式化Django视图的文档字符串

来自分类Dev

如何从DatePickerFragment传输格式化的日期字符串?

来自分类Dev

格式化日期字符串的缩写月份

来自分类Dev

在Swift中格式化字符串

来自分类Dev

Javascript:格式化字符串并避免多次替换