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

Ошибки при попытке прочитать в указанном месте - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 15. В файле записаны числа. Создать новый файл, содержащий длины всех убывающих последовательностей http://www.cyberforum.ru/cpp-beginners/thread668791.html
#include <iostream> #include <stdio.h> #include <conio.h> using namespace std; int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
C++ Выпиливание экземпляра класса самим собой Наслышан и начитан о плохом тоне и ub команды delete this, однако, будет ли ошибкой вызывать вместо delete this деструктор? class SECURITY { *some data* public : SECURITY() { *check something, and it is wrong* ~SECURITY(); http://www.cyberforum.ru/cpp-beginners/thread668786.html
C++ Считать n и вычислить значение следующего выражения
Всем привет. Помогите пожалуйста с задачкой на С++. Только начал осваивать этот язык. Считать n и вычислить значение следующего выражения: \cos(1 + \cos(2 + \, \dots \, + \cos(n - 1 + \cos n)) \ldots ))
CString::find не сравнивает C++
Здравствуйте, Помогите, пожалуйста: Сравниваю CString с char через метод Find следующим образом: CString Word; char EEditTargetLine; //считывание из editbox в переменную типа char m_EditTarget.GetLine(EEditBoxLineCurr, EEditTargetLine, QuantityOfCharInTargetBox);
C++ Определить является ли строка палиндромом и удалить заглавные символы http://www.cyberforum.ru/cpp-beginners/thread668742.html
#include <iostream> #include <stdio.h> #include <string.h> #include <ctype.h> using namespace std; int main() { char* s= new char ; //задаем строку
C++ Азбука Морзе, добавить пробел между словами при декодировании Написал "программу" для перевода кода Морзе на Английский и наоборот, но никак не могу понять как сделать чтобы между словами ставился пробел(в варианте Морзе->Английский). Также почему-то не работает выбор между способами перевода. Прошу помощи. #include <iostream> using std::cout; using std::cin; using std::endl; #include <cstring> using std::strcmp; подробнее

Показать сообщение отдельно
snw
10 / 10 / 0
Регистрация: 11.10.2012
Сообщений: 93
13.10.2012, 12:28  [ТС]     Ошибки при попытке прочитать в указанном месте
Задача состоит в конвертации из инфиксной записи в постфиксную (Обратная Польская Запись). Ввожу выражение, оно обрабатывается и вычисляется.
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <iomanip>
#include <locale>
using namespace std;
 
struct stack
{ 
    char c;
    struct stack *next;
};
 
char pop(stack ** top);
void push(stack **st, char a);
int PRIOR(char a);
 
int main()
{
    
    char a[80], outstr[80];
    int k=0,point=0;
    setlocale(LC_ALL,"Rus");
        
    freopen("input.txt", "r",stdin);
    freopen("output.txt", "w", stdout);
 
    stack OPERS;
    
    do
    {
        cin>>a[k];
        while(a[k]!='\0')
        {
            if(a[k]==')')
            {
                while((&OPERS)->c!='(')
                    outstr[point++]=pop(&OPERS);
                pop(&OPERS);
            }
            if(a[k]=='(')
                OPERS=push(&OPERS,'(');
            if(a[k]=='+'||a[k]=='/'||a[k]=='*'||a[k]=='-')
            {
                if((&OPERS)==NULL)
                    OPERS=push(&OPERS,a[k]);
                else
                    if(PRIOR((&OPERS)->c)<PRIOR(a[k]))
                        OPERS=push(&OPERS, a[k]);
                    else
                    {
                        while(((&OPERS) != NULL) && (PRIOR((&OPERS)->c) >= PRIOR(a[k])))
                        {   outstr[point++]=pop(&OPERS);}
                        OPERS=push((&OPERS),a[k]);
                    }
            }
            k++;
        }
        while(!feof(stdin))
        outstr[point++]=pop(&OPERS);
        outstr[point]='/0';
        cout<<"\n "<<outstr<<"\n ";
        cout<<"\nПовторить(y/n)?";
    }while(getchar()!='n');
}
 
void push(stack **HEAD, char a)
{
  stack *pv;
  pv=new stack;
  pv->c=a;                                
  pv->next=*HEAD;           
  *HEAD=pv;                               
}
 
 
char pop(stack **HEAD)
{
  char a=(*HEAD)->c;
  stack *pv=*HEAD;
  *HEAD = (*HEAD)->next;                   
  delete pv;   
  return a;                   
}
 
 
int PRIOR(char a)
{
  switch(a)
  {
    case '*':
    case '/':
         return 3;
 
    case '-':
    case '+':
         return 2;
 
    case '(':
         return 1;
  }
}
вот кстати очередная итерация кода... неразбериха с OPERS - несовместимость в указателях..
 
Текущее время: 22:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru