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

что это за ошибка - C++

Восстановить пароль Регистрация
 
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
13.09.2013, 15:29     что это за ошибка #1
Вот http://snag.gy/Z3aDn.jpg
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kent
Нуб со стажем
 Аватар для kent
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
13.09.2013, 15:37     что это за ошибка #2
Скорее всего, обращение к элементу строки за ее пределами
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
13.09.2013, 15:42  [ТС]     что это за ошибка #3
ну и что такого, ведь я же использую проверку if, если есть что то то делаем это, если нет символа А в этой области значит не делаем, и в том числе если нет этой области, то тоже не делаем...я же все правильно написал, почему этот компилятор ругается не пойму

Добавлено через 1 минуту

Не по теме:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
file.open("text.txt");
    char a=0;
    string teg="";
    while(!file.eof())
    {
        file.get(a); // запись символа из файла в a
        if(a=='<') {teg=""; bool_teg=true; bool_file=false;} 
        if(bool_file) out_file.put(a); // запись текущего символа в файл
        if(a=='>') 
            {
                teg+=a;
                if(teg=="<p>") out_file<<endl; // запись в файл символа \n
                bool_teg=false;
            }
        if(bool_teg) teg+=a;
        if(teg=="<p>") bool_file=true; //но ведь почему то тут работатет, хотя в этот момент в переменной teg может не быть строки "<p>"
        else if(teg=="<strong>") bool_file=true; //но ведь почему то тут работатет, хотя в этот момент в переменной teg может не быть строки "<p>"
        else if(teg[0]=='<' && teg[7]=='=') system("pause"); //Лишь в этом месте ругается...хотя если выбрать елемент teg[0] && teg[1] то нормально работает, если взять больше все ошибка!
        else bool_file=false;
    }  
    out_file.close();
    file.close();

kent
Нуб со стажем
 Аватар для kent
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
13.09.2013, 15:47     что это за ошибка #4
Дебагать пробовали?
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
13.09.2013, 16:23  [ТС]     что это за ошибка #5
да..сразу как доходит до else if(teg[0]=='<' && teg[7]=='=') ошибка!...щас выложу

Добавлено через 2 минуты
Это после того как появится ошибка и нажатия на клавишу ПОВТОР http://snag.gy/wWt7r.jpg

Добавлено через 22 минуты
Как проверить в str первые 5 букв...
String str="Hello World";??? без использования FOR()
UranFlex
131 / 129 / 21
Регистрация: 25.05.2013
Сообщений: 233
13.09.2013, 16:58     что это за ошибка #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<cstring>
 
using namespace std;
 
int main() {
    string::size_type index = 0;
    string str( "" );
    while ( true ) {
        if ( str[ index++ ] != 'a' )
            cout << "NO" << endl;
 
    }
 
}
Данная программа падает.
Проверял Release версии на Win7 ( MinGW компилятор ) и Linux( g++ компилятор ). Скрины прилагаю.
В момент проверки teg[ n ] можно выйти за границу строки и тем самым сделав попытку чтения/записи несуществующего элемента.
Т.е. прежде чем проверять элемент строки - надо убедится что элемент с таким индексом существует.
Например, встроить проверку teg.size() > n
Миниатюры
что это за ошибка   что это за ошибка  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 17:33     что это за ошибка
Еще ссылки по теме:

Что это за ошибка? C++
Что это за знак >> прочитал что это сдвиг вправо? что он делает C++
C++ LNK2019: ссылка на неразрешенный внешний символ. Что это за ошибка?

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

Или воспользуйтесь поиском по форуму:
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
13.09.2013, 17:33  [ТС]     что это за ошибка #7
UranFlex, спс сделал как вы сказали, все работает))..в дальнейшем учту этот неловкий момент
Yandex
Объявления
13.09.2013, 17:33     что это за ошибка
Ответ Создать тему
Опции темы

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