我正在使用std :: ostringstream將雙精度格式化爲具有特定格式的字符串(使用撇號作爲數千個分隔符)。但是,在某些情況下,ostringstream給了我不同於我預期的結果。std :: ostringstream放置錯誤的位置?
據我所知,以下代碼的預期輸出應爲「+01」;而是輸出「0 + 1」。我在這裏做錯了什麼,我如何得到我需要的結果?
#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream stream;
stream << std::showpos; // Always show sign
stream << std::setw(3); // Minimum 3 characters
stream << std::setfill('0'); // Zero-padded
stream << 1; // Expected output: "+01"
std::cout << stream.str(); // Output: "0+1"
return 0;
}
只有幾個字符,'oss << (x> = 0? :'+':' - ');在我看來,'會更具可讀性。 – YSC
有可能獲得PO想要的。看@Pete Becker的答案或我的。 – informaticienzero