Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Ошибка при компиляции


Автор: SergFenko 28.5.2009, 16:20
Народ помогите разобраться, не пойму где ошибся. Вот прога :

Код

// prog1.cpp : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

#define SIZE 10;

// Объявление класса stack для символов
class stack {
        char stck [SIZE]; // содержит стек
        int tos; // индекс вершины стека
    public :
        void init(); // инициализация стека
        void push(char ch) ; // помещает в стек символ
        char pop (); // выталкивает из стека символ
};
    //  Инициализация стека
void stack::init()
{
    tos=0;
}
    //  Помещение символа в стек
void stack::push(char ch)
{
    if (tos=SIZE) {
        cout << "Стек полон";
        return;
        }
    stck[tos] = ch;
    tos++;
}
    // Выталкивание символа из стека
char stack::pop()
{
    if (tos==0) {
        cout << "Стек пуст";
        return 0; // возврат нуля при пустом стеке
        }
    tos--;
    return stck[tos];
}
int main()
{
    stack s1, s2; // создание двух стеков
    int i;
// инициализация стеков
    s1.init ();
    s2.init () ;
    s1.push ('a');
    s2.push ('x');
    s1.push('b');
    s2.push('y1);
    s1.push('c');
    s2.push('z1');
    for(i=0;i<3;i++) cout << "символ из s1:" << s1.pop() << "\n";
    for(i=0;i<3; i++) cout << "символ из s2:" << s2.pop() << "\n";
    return 0;
}




Вот что пишет компилятор (VS2008) :
1>.\prog1.cpp(11) : error C2143: syntax error : missing ')' before ';'
1>.\prog1.cpp(11) : error C2143: syntax error : missing ']' before ')'
1>.\prog1.cpp(11) : error C2143: syntax error : missing ';' before ')'
1>.\prog1.cpp(11) : error C2059: syntax error : ')'
1>.\prog1.cpp(11) : error C2059: syntax error : ']'
1>.\prog1.cpp(11) : error C2238: unexpected token(s) preceding ';'
1>.\prog1.cpp(26) : error C2143: syntax error : missing ')' before ';'
1>.\prog1.cpp(26) : error C2059: syntax error : ')'
1>.\prog1.cpp(26) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>.\prog1.cpp(53) : error C2001: newline in constant
1>.\prog1.cpp(54) : error C2146: syntax error : missing ')' before identifier 's1'
1>.\prog1.cpp(54) : warning C4305: 'argument' : truncation from 'int' to 'char'
1>.\prog1.cpp(54) : warning C4309: 'argument' : truncation of constant value
1>.\prog1.cpp(55) : warning C4305: 'argument' : truncation from 'int' to 'char'
1>.\prog1.cpp(55) : warning C4309: 'argument' : truncation of constant value

Автор: azesmcar 28.5.2009, 16:29
SergFenko

Цитата

#define SIZE 10;

точку с запятой из макроса убрать
Код

#define SIZE 10

Цитата

s2.push('y1);

закрыть одинарную ковычку
Код

s2.push('y1');


Добавлено через 1 минуту и 25 секунд
еще
Цитата

s2.push('z1');

'z1' - это не char. char - 1 символ

Автор: SergFenko 28.5.2009, 16:50
Большое спасибо за консультацию.
Это я читаю книгу Герберта Шилдта - Самоучитель С++ и пример взят оттуда.

Автор: azesmcar 28.5.2009, 16:52
Цитата(SergFenko @  28.5.2009,  16:50 Найти цитируемый пост)
Это я читаю книгу Герберта Шилдта - Самоучитель С++ и пример взят оттуда. 

либо он сильно модифицирован, либо неудачно отсканированная версия, а может эту неудачно отсканированную версию потом через FineReader прогнали. Такое тоже бывает.

Автор: jhonyxakep 30.5.2009, 17:39
Цитата

Это я читаю книгу Герберта Шилдта - Самоучитель С++ и пример взят оттуда. 

Примеры из этой книги прерписывают вручную! никакой Finereader такого не сделает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)