У меня возникли некоторые проблемы при использовании класса istringstream

#c

#c

Вопрос:

f 120208//43254 120212//43256 120178//43251 120177//43249

это содержимое текстового файла; я использую ifstringstream как: istringstream iss //bind;(этот iss привязан к строке); затем:

 char c;
int k;
iss>>c>>k; //(c='f'  k= 120208)
iss>>c;  //(c='/')
iss>>k  //(here i should use iss>>c, but i use iss>>k);
 

но после этого я делаю что-либо с iss>> , он возвращает ‘/’; и никогда не продолжаю;

почему? как я могу это решить?

Комментарии:

1. Двойная косая // черта не является допустимым разделителем для извлечения потока. Вот почему он терпит неудачу. И вы не проверяете, установлен ли сбой потока.

2. «Почему?» Потому что, как только чтение завершается неудачно, поток перестает работать. ‘Как я могу это решить? ` Используйте iss.clear(); , и поток снова начнет работать.