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

Компилируется но при выполнении ошибка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вектор вектора http://www.cyberforum.ru/cpp-beginners/thread799819.html
Доброго времени суток формучане! Очень надеюсь на вашу помощь. Вопрос вроде простой, но у меня в синтаксисе векторов дела плохи. В общем есть код. #include <iostream> #include <vector> using namespace std; vector <vector <int> > g; int main()
C++ rand() между 0 и 1 Здравствуйте! не смог с генерировать маленькое число в промежутке о и 1. Как это сделать? Гугл не помог... http://www.cyberforum.ru/cpp-beginners/thread799811.html
Ошибка в программе C++
смысл такой: Код: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_BUFF_LEN 56 const char* const greeting = "Your message is: ";
C++ кто может прокомментировать код?
// найти все натуральные числа, не превосходящие N, и делящие на каждую из своих цифр #include<iostream> using namespace std; int main () { int i, temp, j, n; cout<<"Enter the n: "<<endl;
C++ Как рандомно заполнить одномерный массив единицами и нулями? http://www.cyberforum.ru/cpp-beginners/thread799755.html
как рандомно заполнить одномерный массив единицами и нулями???
C++ Одна задача методом списков и Очереди (вставить после каждого простого числа удвоенное среднее геометрическое всех элементов последовательности) Помогите написать две программы. "В числовой последовательности вставить после каждого простого числа удвоенное среднее геометрическое всех элементов последовательности." Методом list и Queue Добавлено через 19 часов 57 минут Помогите, пожалуйста. подробнее

Показать сообщение отдельно
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.03.2013, 11:54     Компилируется но при выполнении ошибка
Там много других ошибок. Например, 37 строка:
C++
1
deistv.erase(posIf, posThen+4);//удаляем с позиц if по позиц And+3
В первой строке нет then, поэтому здесь будет ошибка. В коментариях одно написано, в коде другое.

Добавлено через 7 минут
Главное непонятно, как в таком тексте действие отделить от фактов? Если я правильно понял, то факты через and отделены друг от друга. А действие от фактов чем отделено? Или в первом предложении then пропущено?

Добавлено через 17 минут
Вот так работает, только в первую строку нужно добавить then (if желание - отдых and ухабистая - дорога then использовать джип) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <string>
#include <fstream>
#include <stdio.h>
using namespace std;
 
int main()
{
    setlocale(0, "");
 
//----------------------------------------------
    string str , str1, str2, fakt1, fakt2, deistv;
    int locate; //положение позиции курсора 
    int cnt;
//------------------------------------------------
 
    ifstream in("rules.txt");//тут файл, который нужен
    if (in.is_open())
    {
       int posIf;
       int posAnd; 
       int posThen;
       
       while (!in.eof())
       {
             getline(in, str);//считали первую строку      
         cout << str << endl;//проверка строки
 
              posIf = str.find("if");//определяем позиц 
              posAnd = str.find("and");//определяем позиц 
              posThen = str.find("then");//определяем позиц     
           
           if ( str.find("and") != std::string::npos ) //если вернет -1 значит нет  
           { 
              cout <<"Esti 2 fakta i odno deistvie "<<endl;//проверка
 
                   fakt1 = str;
                   fakt1.resize(posAnd-1);//удаляем and в конце строки
                   fakt1.erase(posIf,3);//удаляем if в начале стр
                   //вытянули перв факт
              cout <<"Fakt 1: "<< fakt1 << endl;//проверка
                   fakt2 = str;
                   fakt2.erase(posThen); //удаляем then и конец строки
                   fakt2.erase(posIf, posAnd+3);//удаляем с позиц if по позиц And+3
                   //вытянули втор факт
              cout <<"Fakt 2: "<< fakt2 <<endl;//проверка
                   deistv = str;
                   deistv.erase(posIf,posThen+4);//удаляем с позиц if по позиц And+3
                   //вытянули действ
             cout <<"Deistv: "<< deistv <<endl;//проверка
           }
           else 
           {
             cout <<"Esti 1 fakt i odno deistvie "<<endl;
 
                  fakt1 = str;
                  fakt1.resize(posThen - 1);//удаляем and в конце строки
                  fakt1.erase(posIf,3);//удаляем if в начале стр
             cout <<"Fakt 1: "<< fakt1 <<endl;//проверка
                  deistv = str;
                  deistv.erase(posIf,posThen+4);//удаляем с позиц if по позиц And+3
             cout <<"Deistv: "<< deistv <<endl;//проверка
            }//end else  
        }//end eof        
    }
    else  cerr << "Can't open file!" <<endl;
    
    in.close(); //закрыли входной файл rules 
    
    system("PAUSE");
    return 0;
    
}
Коментарии оставил родные (не везде правильные).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru