С std::stringstream
- это строчка, и в соответствии с documention здесь вы можете выполнять любую операцию, поддерживаемую потоком.std :: stringstream поддерживает только один вход за раз?
Так что я ожидал, что следующий образец будет работать, но, похоже, это не так. Я использую MingW с gcc 4.8.3.
Вариант А:
std::string s;
std::stringstream doc;
doc << "Test " << "String ";
doc << "AnotherString";
doc >> s;
std::cout << s << std::endl;
Вариант B:
std::string s;
std::stringstream doc;
doc << "Test ";
doc << "AnotherString";
doc >> s;
std::cout << s << std::endl;
Выход это только
Test
В то время как я ожидал, что он будет сцеплять индивида строки Я читал из потока, что я там положил.
Итак, каков подходящий способ конкатенации строк? Нужно ли мне читать каждый отдельно и конкатенировать их вручную, что мне кажется довольно неудобным в C++.
'поток >> s' читает только одно слово из потока. Неважно, какой поток это. Используйте 'getline', если вам нужна целая строка вместо одного слова. – Barmar