2015-11-06 34 views
-1

嘿,我已經很長一段時間沒有C++遊戲,並試圖回到它。我試圖從一些基本的東西開始,這些東西實際上對我也有用。我試着輸入字節如C++輸入字節和輸出十六進制

14 A4 B7 54 85

輸出像這樣用逗號分隔符

0x14的,0xA4,0xB7,0x54,0x85

有什麼建議?謝謝

+3

建議?是的,閱讀一本關於這個主題的好書介紹:-)或者至少*先嚐試*。 – paxdiablo

+1

將數字視爲單詞(std :: string)。輸入一個單詞,打印0x,然後輸入數字,然後輸出一個逗號。最後的數字很棘手,因爲它沒有逗號。 –

+0

@paxdiablo是的,我正在閱讀我最喜歡的C++書籍之一。我正在閱讀,如果我需要正則表達式或提升來做到這一點,我從來沒有使用過這些,所以試圖讀入所有這些。 –

回答

4

有幾百種方法可以做到這一點(而且沒有一個讓我覺得這是使用C++而不是任何其他可能性的特別令人信服的理由),但我可能會這樣做:

std::ifstream in("my input.hex"); 
std::ofstream out("my output.txt"); 

std::transform(std::istream_iterator<std::string>(in), 
       std::istream_iterator<std::string>(), 
       infix_ostream_iterator<std::string>(out, ","), 
       [](std::string const &s) { return "0x"s + s; }); 

使用infix_ostream_iterator我已在其他地方發佈。

相關問題