Остринстрим проблема с 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++, похоже, не работает.