C 將乙個資料格式化為固定長度的字串

2021-09-28 17:05:25 字數 994 閱讀 4905

經常會遇到將資料解析為文字檔案的現象,通常因為資料長度的不同導致,視覺化效果不好。

寫乙個輸入資料獲取固定長度字串的函式,來得到乙個固定長度的資料,讓格式化看起來好看一些。

#include #include #include templatestd::string gen_fixed_len_str(t val, uint64_t len)

if (oss.str().size() > len)

else

}return oss.str();

}

snprintf使用也很方便,舉個下邊的簡單的例子

char buf[64] = ;

// abc 佔10個字元的位置 右對齊

std::snprintf(buf, sizeof (buf), "%10s", "abc");

char buf1[64] = ;

// abc 佔10個字元的位置 左對齊

std::snprintf(buf1, sizeof (buf1), "%-10s", "abc");

//需要注意的是,如果字串的長度超過了設定的寬度,那麼設定的寬度就無效了。

//整型資料的輸出是一樣的

std::ostringstream oss;

oss << std::left

<< std::setw(10) << "abc"

<< std::right

<< std::setw(15) << 100

<< std::endl;

std::cout << oss.str();

//涉及到的標頭檔案包括

// #include // #include // #include // 如果需要不足的位置補上一些字元的話可以使用 std::setfill('0') 比如補0

這種風格的輸出也很優雅。一樣的問題是設定的寬度不夠的時候,寬度就無效了。

js將乙個陣列分割成指定長度陣列的集合

需求 目標陣列 1,2,3,4,5,6,7 假如想分割的長度為2,則輸出 1,2 3,4 5,6 7 lodash庫中提供了這麼乙個方法 chunk 先用lodash來實現需求 chunk array,size 1 description 將目標資料分割成指定長度的陣列集合 param array ...

抓了乙個資料格式表示位數不夠的bug,警示

是這樣的 新開兩個指標 long p1 new long long p2 new long 其中 p1 100000 p2 100000 後面進行計算的時候,long long res p1 p2 得到的結果是 res 1410065408 顯然,這裡 p1被隱式轉換成了long,然後兩個long相...

乙個完全平均分布的固定長度隨機數發生器

訂單需要乙個不重複且加密的的訂單號,而且訂單號不能太長!加密說白了就是不想讓任何人從訂單號中看出來今天產生了多少個訂單。訂單號要不重複且不太長,那就只能是日期 流水號。但是,流水號顯然不能符合加密的需求。所以,流水號就需要加密了。初始化乙個順序序列的map,然後隨機取出乙個數放到乙個棧裡面並刪除ma...