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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sean_mephi
1 / 1 / 1
Регистрация: 15.11.2013
Сообщений: 79
#1

Переполнение строки при считывании из файла - C++

05.02.2014, 13:26. Просмотров 310. Ответов 4
Метки нет (Все метки)

Считываю я строки из файла, в котором их 500 тысяч. Если строка начинается на R, то я записываю её в другой файл. Примерно на 312000-й строке мне выдаётся ошибка string subscript is out of range
Вот отрывок кода:
C++ (Qt)
1
2
3
4
5
6
while(rts)
        {
            string s;
            getline(rts,s);
            if(s[0]=='R') sorted<<s<<endl;
        }
Что я делаю не так? Хотелось бы чтобы процесс шёл до конца файла. Писать нужно только на плюсах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2014, 13:26     Переполнение строки при считывании из файла
Посмотрите здесь:

С++ сбивается указатель при считывании из файла C++
Проблема при считывании из файла C++
Ошибки при считывании строки из файлы C++
Ошибка, при считывании инфы с файла... C++
C++ Переполнение при считывании из файла
C++ Лишние биты при считывании файла
При считывании из файла не выводится отчество C++
Неверная кодировка при считывании из файла C++
Разъясните ошибки при считывании файла C++
Зацикливает, при считывании строки C++
Конец файла при потоковом считывании C++
C++ Ошибка при считывании двоичного файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12507 / 7069 / 794
Регистрация: 27.09.2012
Сообщений: 17,454
Записей в блоге: 2
Завершенные тесты: 1
05.02.2014, 13:30     Переполнение строки при считывании из файла #2
C++
1
2
3
4
5
string s;
while(getline(rts,s))
        {           
            if(s.size() > 0 && s[0]=='R') sorted<<s<<endl;
        }
Sean_mephi
1 / 1 / 1
Регистрация: 15.11.2013
Сообщений: 79
05.02.2014, 13:33  [ТС]     Переполнение строки при считывании из файла #3
Croessmah, спасибо. А ещё такой вопрос: Мне нужно откинуть строки в которых есть символ #. Он может стоять где угодно в строке. Какое условие в if нужно добавить?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12507 / 7069 / 794
Регистрация: 27.09.2012
Сообщений: 17,454
Записей в блоге: 2
Завершенные тесты: 1
05.02.2014, 13:39     Переполнение строки при считывании из файла #4
C++
1
2
3
4
std::size_t found = s.find('#');
if (found!=std::string::npos){
   //символ найден
}
Sean_mephi
1 / 1 / 1
Регистрация: 15.11.2013
Сообщений: 79
05.02.2014, 14:04  [ТС]     Переполнение строки при считывании из файла #5
Croessmah, вообще ничего не записывает.
C++ (Qt)
1
2
3
4
5
6
7
8
9
    else
    {
        string s;
        while(getline(rts,s))
            {         
                size_t found = s.find('#');
                if(s.size() > 0 && s[0]=='R' && (found!=string::npos)) sorted<<s<<endl;
            }
    }
Добавлено через 13 минут
Потому что там нет #. Меня обманул эксель. Спасибо Вам за помощь
Yandex
Объявления
05.02.2014, 14:04     Переполнение строки при считывании из файла
Ответ Создать тему
Опции темы

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