как читать строковый поток с динамическим размером?

Я хотел поэкспериментировать со строковым потоком для задания, но немного запутался в том, как это работает. Я быстро поискал, но не нашел ничего, что могло бы ответить на мой вопрос.

Скажем, у меня есть поток с динамическим размером, как мне узнать, когда прекратить запись в переменную?

 string var = "2 ++ asdf 3 * c";
 stringstream ss;

 ss << var;

 while(ss){
  ss >> var;
  cout << var << endl;
 }

и мой вывод будет:

2  
++  
asdf  
3  
*  
c  
c  

Я не уверен, почему я получаю лишнюю 'c' в конце, особенно с учетом того, что _M_in_cur = 0x1001000d7 ""

9
задан James McNellis 21 September 2010 в 03:24
поделиться