Остринстрим проблема с int в C ++ - PullRequest
4 голосов
/ 06 декабря 2009

Я ожидаю, что следующий код выведет 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 ]

4 голосов
/ 06 декабря 2009

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

3 голосов
/ 06 декабря 2009

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

2 голосов
/ 06 декабря 2009

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

1 голос
/ 06 декабря 2009

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

- Правка -

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...