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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вектор вектора http://www.cyberforum.ru/cpp-beginners/thread799819.html
Доброго времени суток формучане! Очень надеюсь на вашу помощь. Вопрос вроде простой, но у меня в синтаксисе векторов дела плохи. В общем есть код. #include <iostream> #include <vector> ...
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; ...
C++ Как рандомно заполнить одномерный массив единицами и нулями? http://www.cyberforum.ru/cpp-beginners/thread799755.html
как рандомно заполнить одномерный массив единицами и нулями???
C++ Одна задача методом списков и Очереди (вставить после каждого простого числа удвоенное среднее геометрическое всех элементов последовательности) Помогите написать две программы. "В числовой последовательности вставить после каждого простого числа удвоенное среднее геометрическое всех элементов последовательности." Методом list и Queue ... подробнее

Показать сообщение отдельно
alsav22
5421 / 4816 / 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;
    
}
Коментарии оставил родные (не везде правильные).
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru