Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.02.2014, 13:26. Просмотров 382. Ответов 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;
        }
Что я делаю не так? Хотелось бы чтобы процесс шёл до конца файла. Писать нужно только на плюсах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2014, 13:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переполнение строки при считывании из файла (C++):

Переполнение при считывании из файла - C++
Подскажите пожалуйста, где ошибка, вот код чтения из файла: void read_file(void) { int mass; FILE* file = fopen(&quot;arr.txt&quot;, &quot;r&quot;); ...

Зацикливает, при считывании строки - C++
Даже не запрашивает ввод, сразу зацикливает. Что не так? case 3: { char* r = new char; int i, z = 0, n...

Проблема при считывании из файла - C++
Пишу простенькую программу по криптографии. В результате шифрования получается txt файлик с набором закорючек(он во вложении). Для...

Ошибки при считывании строки из файлы - C++
Добрый вечер. Бьюсь с этой проблемой уже не первый день. Но вразумительно ответа в интернете так и не нашел. В программе нужно считать...

Разъясните ошибки при считывании файла - C++
не пойму что от меня требуется тут) пол года изучаем язык) часть ошибок исправил но при считывании с файла лепит нарушение прав доступа ...

Конец файла при потоковом считывании - C++
if (fin.eof()==0){ cout &lt;&lt; &quot;aaa&quot;; int asa; asa = (int)buf; fout.write((char*)buf, sizeof(buf - asa)); } вот...

4
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 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;
        }
0
Sean_mephi
1 / 1 / 1
Регистрация: 15.11.2013
Сообщений: 79
05.02.2014, 13:33  [ТС] #3
Croessmah, спасибо. А ещё такой вопрос: Мне нужно откинуть строки в которых есть символ #. Он может стоять где угодно в строке. Какое условие в if нужно добавить?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
05.02.2014, 13:39 #4
C++
1
2
3
4
std::size_t found = s.find('#');
if (found!=std::string::npos){
   //символ найден
}
0
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 минут
Потому что там нет #. Меня обманул эксель. Спасибо Вам за помощь
0
05.02.2014, 14:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2014, 14:04
Привет! Вот еще темы с ответами:

Сбивается указатель при считывании из файла - C++
Сбивается указатель, считывается не то значение (вместо '1' считывается пробел и всё летит). Но если открыть этот файл в WordPad'e добавить...

При считывании из файла не выводится отчество - C++
Необходимо прочитать из файла фамилию студента, имя и отчество. И вывеси на экран фамилию и инициалы. Вот код, но выводит ерунду...

Ошибка, при считывании инфы с файла... - C++
Вот есть код:#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;fstream.h&gt; #include &lt;stdio.h&gt; #include...

Ошибка при считывании двоичного файла - C++
При считывании из .EXE файла возникает ошибка, а возникает она когда считываемый байт равен 0x1A. Если он есть в файле то программа &quot;видит&quot;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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