Я использую std:: ostringstream для форматирования двойной строки в определенном формате (используя апострофы в качестве разделителей тысяч). Однако в некоторых случаях 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;
}