Форум программистов, компьютерный форум CyberForum.ru

Не корректно работает вывод из потока stringstream - C++

Восстановить пароль Регистрация
 
AleksandrMild
0 / 0 / 0
Регистрация: 02.09.2015
Сообщений: 18
05.09.2015, 12:58     Не корректно работает вывод из потока stringstream #1
Здравствуйте форумчане, не корректно работает ввод из потока. Не знаю в чем проблема.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
stringstream InStream;  //создаем поток
char Symb;
unsigned int NumN;
While(!СчитывемФайл.eof())
{
 InStream.str(ReadData);    //Ввод в поток типа String
 InStream >> Symb >> NumN;  //Вывод из потока символа и числа
 
cout << "\n In stream:" << InStream.str() << endl;    \\ Увидели что в потоке все правильно
 
 
                Resize=NumN+1;            
                Nvector.resize(Resize);    // Увеличили место для ввода нового числа
                Nvector[NumN]=NumN;   //Записали из потока наше число NumN
 
// Проверяем, что у нас записалось в вектор        
cout << "\nNvector["<< NumN<<"]= " <<Nvector[NumN]
                    <<setw(10)<< " Nvector["<< NumN-1 <<"]= " <<Nvector[NumN-1];
 
}
В вектор, почему то пишутся одни единицы, то есть из потока не вводится корректное число. Может я что-то не то делаю. Подскажите, кто знает. пожайлуста.
In stream:N 8
Nvector[1]=1 Nvector[0]=0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2015, 12:58     Не корректно работает вывод из потока stringstream
Посмотрите здесь:

C++ Проблемы с созданием потока stringstream
Не корректно работает программа,посмотрите C++
C++ Не корректно работает
Работает не корректно C++
C++ Сбрасывается форматирование std::stringstream при очистке потока
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4326 / 3747 / 1262
Регистрация: 14.04.2014
Сообщений: 14,710
05.09.2015, 13:11     Не корректно работает вывод из потока stringstream #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Откуда ReadData берётся?
InStream.Clear() добавь после 6-й строки.

Зачем вообще stringstream, если данные из файла идут, и что будет, если числа не в порядке возрастания?
AleksandrMild
0 / 0 / 0
Регистрация: 02.09.2015
Сообщений: 18
05.09.2015, 17:42  [ТС]     Не корректно работает вывод из потока stringstream #3
Цитата Сообщение от nmcf Посмотреть сообщение
InStream.Clear() добавь после 6-й строки
Добавил перед присвоением - все заработало!!! Ура!
Оказывается поток еще надо очищать. Я думал он сам очищается, когда идет вывод.
Это координаты идут, числа будут идти разные и в разной последовательности.
nmcf
4326 / 3747 / 1262
Регистрация: 14.04.2014
Сообщений: 14,710
05.09.2015, 17:54     Не корректно работает вывод из потока stringstream #4
Clear() - не очистка, а сброс флагов состояния.
Если числа разные, то resize() может и урезать вектор, соответственно данные потеряются. Хотя я не пойму, зчем он тут вообще.
AleksandrMild
0 / 0 / 0
Регистрация: 02.09.2015
Сообщений: 18
07.09.2015, 12:40  [ТС]     Не корректно работает вывод из потока stringstream #5
Цитата Сообщение от nmcf Посмотреть сообщение
Если числа разные, то resize() может и урезать вектор, соответственно данные потеряются. Хотя я не пойму, зчем он тут вообще.
Идея была в том, чтобы выводить из файла строку и при этом распознавать данные char и int раздельно.
Так как цикл постоянно повторялся при вводе новой строки из файла, его нужно было обнулять. Теперь все работает, данные переписываются. Спасбо.
Yandex
Объявления
07.09.2015, 12:40     Не корректно работает вывод из потока stringstream
Ответ Создать тему
Опции темы

Текущее время: 16:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru