Остринстрим проблема с int в C++

Я ожидал бы следующий код для вывода hello5, Вместо этого он только выводит hello, Кажется, это проблема с попыткой вывести int на ostringstream, Когда я вывожу то же самое прямо в cout Я получаю ожидаемый вклад. Использование XCode 3.2 на Snow Leopard.

Спасибо!

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main(){
 int myint = 5;
 string mystr = "hello";
 string finalstr;
 ostringstream oss;

 oss << mystr << myint;
 finalstr = oss.str();

 cout << finalstr;


 return 0;
}

РЕДАКТИРОВАТЬ: см. Ответ я разместил ниже. Похоже, это вызвано проблемой в активной конфигурации "Отладка" в XCode 3.2 на Snow Leopard.

4 ответа

Решение

Изменение активной конфигурации в XCode с "Debug" на "Release" работает как обходной путь.

Ваш код правильный, он пишет hello5 на моем компьютере с Windows 7. Возможно, проблема скорее в том, что вы не пишете std::endl или что-то, что может запутать вашу ОС.

Да, проверено на этом конце (Windows XP Pro), и он работает плавно

Я только что протестировал, и он отлично работал на моем Mac с Xcode 3.2.1 и Snow Leopard. Это не то, что ваша подсказка скрывает вывод? Попробуй добавить endl к линии фронта?

-- Редактировать --

Мой набор тестов

  • c++ test.cpp -- работает отлично
  • c++ -D_GLICXX_DEBUG=1 test.cpp -- потерпеть поражение
  • c++ -arch i386 -D_GLICXX_DEBUG=1 test.cpp -- работает отлично

Что мы можем сказать по этому поводу? Короче говоря, отладочная версия 64-битного stdC++, похоже, не работает.

Другие вопросы по тегам