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

Не компилирует на вижуал, как быть? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Muqp
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 6
25.05.2011, 23:56     Не компилирует на вижуал, как быть? #1
Такая проблема:
Я чайник.
Есть программа, написанная под компилятор g++ вроде.
Хотел ее на студии запустить.
Не получилось.

Вот текст:
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
101
102
103
104
105
106
107
#include <iostream>
#include <fstream>
#include <cassert>
#include "stdafx.h"
 
// тип стекового кадра
struct stack_card {
    int obj;
    stack_card * ptr;
};
 
class stack {
private:
    stack_card * data;
public:
    stack () {
        data = 0;
    }
    void push(int t) {
        stack_card * tmp = new stack_card;
        tmp->obj = t;
        tmp->ptr = data;
        data = tmp;
    }
    int pop() {
        assert(data != 0);
 
        int rsl = data->obj;
        stack_card * tmp = data;
 
        data = data->ptr;
        delete tmp;
        return rsl;
    }
    bool empty() {
        return (data == 0);
    }
    void print() {
        stack_card * tmp = data;
        while (data != 0) {
            std :: cout << data->obj << std::endl;
            data = data->ptr;
        }
        data = tmp;
    }
};
 
stack read_file(char * filename) {
    std :: ifstream f (filename);
    stack stk;
 
    while (!f.eof()) {
        int tmp;
        f >> tmp;
        stk.push(tmp);
    }
    return stk;
}
 
stack read_console() {
    int n;
    int tmp;
    stack stk;
 
    std :: cout << "Write the size of train : ";
    std :: cin  >> n;
 
    for (int i = 1; i <= n; ++i) {
        std :: cout << "Set " << i << " = ";
        std :: cin >> tmp;
        stk.push(tmp);
    }
 
    return stk;
}
 
int main(int argc, char ** argv) {
    stack tp1;
    stack tp2;
    stack rsl;
  
    //assert(argc == 2);
    //rsl = read_file(argv[1]);
 
    rsl = read_console();
 
    std :: cout << " -- Input -- " << std :: endl;
    rsl.print();
 
    while (!rsl.empty()) {
        int tmp = rsl.pop();
        if ((tmp % 2) == 0) {
            tp1.push(tmp);
        }
        else {
            tp2.push(tmp);
        }
    }
 
    std :: cout << " -- Train 1 -- " << std :: endl;
    tp1.print();
 
    std :: cout << " -- Train 2 -- " << std :: endl;
    tp2.print();
 
    return 0;
}
список ошибок:
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(27) : error C3861: assert: идентификатор не найден
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(42) : error C2653: std: не является именем класса или пространства имен
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(42) : error C2065: cout: необъявленный идентификатор
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(42) : error C2653: std: не является именем класса или пространства имен
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(42) : error C2065: endl: необъявленный идентификатор
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(50) : error C2653: std: не является именем класса или пространства имен
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(50) : error C2065: ifstream: необъявленный идентификатор
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(50) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "f"
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(50) : error C3861: f: идентификатор не найден
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(53) : error C2065: f: необъявленный идентификатор
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(53) : error C2228: выражение слева от ".eof" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'

Добавлено через 3 минуты
Очень нужно скомпилить.
Буду Очень благодарен, если объясните что ему не нравится.\

Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lvlkoo
.NET C#,ASP.NET MVC
 Аватар для lvlkoo
301 / 257 / 89
Регистрация: 16.10.2010
Сообщений: 1,157
Завершенные тесты: 1
26.05.2011, 00:00     Не компилирует на вижуал, как быть? #2
C++
1
using namespace std;
после инклудов
Muqp
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 6
26.05.2011, 00:09  [ТС]     Не компилирует на вижуал, как быть? #3
1>c:\users\muqp\documents\visual studio 2008\projects\qwe\qwe\qwe.cpp(9) : error C2871: std: пространство имен с таким именем не существует

Добавлено через 5 минут
не получилось к сожалению
lvlkoo
.NET C#,ASP.NET MVC
 Аватар для lvlkoo
301 / 257 / 89
Регистрация: 16.10.2010
Сообщений: 1,157
Завершенные тесты: 1
26.05.2011, 00:09     Не компилирует на вижуал, как быть? #4
убери все
C++
1
std::
Digit@ll
Brainsbreaker
 Аватар для Digit@ll
832 / 343 / 27
Регистрация: 01.02.2011
Сообщений: 1,483
26.05.2011, 00:12     Не компилирует на вижуал, как быть? #5
Все намного проще: #include "stdafx.h"
Muqp
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 6
26.05.2011, 00:15  [ТС]     Не компилирует на вижуал, как быть? #6
Цитата Сообщение от lvlkoo Посмотреть сообщение
убери все
C++
1
std::
прошу прощения, не понял.
Куда это вставить, и что "все" убрать?

Добавлено через 29 секунд
Цитата Сообщение от Digit@ll Посмотреть сообщение
Все намного проще: #include "stdafx.h"
да подключил вроде...
lvlkoo
.NET C#,ASP.NET MVC
 Аватар для lvlkoo
301 / 257 / 89
Регистрация: 16.10.2010
Сообщений: 1,157
Завершенные тесты: 1
26.05.2011, 00:17     Не компилирует на вижуал, как быть? #7
C++
1
2
3
4
5
#include <iostream>
#include <fstream>
#include <cassert>
#include "stdafx.h"
 using namespace std;

из всех контрукций вида
C++
1
   std :: ifstream f (filename);
сделай
C++
1
ifstream f (filename);
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
26.05.2011, 00:22     Не компилирует на вижуал, как быть? #8
Все include пропиши в stdafx.h, если он есть. Либо наоборот его убери.
Muqp
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 6
26.05.2011, 00:29  [ТС]     Не компилирует на вижуал, как быть? #9
правильно ли я сделал?
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
101
102
103
104
105
106
107
108
#include <iostream>
#include <fstream>
#include <cassert>
#include <stdafx.h>
using namespace std;
// тип стекового кадра
 
struct stack_card {
    int obj;
    stack_card * ptr;
};
 
class stack {
private:
    stack_card * data;
public:
    stack () {
        data = 0;
    }
    void push(int t) {
        stack_card * tmp = new stack_card;
        tmp->obj = t;
        tmp->ptr = data;
        data = tmp;
    }
    int pop() {
        assert(data != 0);
 
        int rsl = data->obj;
        stack_card * tmp = data;
 
        data = data->ptr;
        delete tmp;
        return rsl;
    }
    bool empty() {
        return (data == 0);
    }
    void print() {
        stack_card * tmp = data;
        while (data != 0) {
            std :: cout << data->obj << std::endl;
            data = data->ptr;
        }
        data = tmp;
    }
};
 
stack read_file(char * filename) {
    ifstream f (filename);
    stack stk;
 
    while (!f.eof()) {
        int tmp;
        f >> tmp;
        stk.push(tmp);
    }
    return stk;
}
 
stack read_console() {
    int n;
    int tmp;
    stack stk;
 
    std :: cout << "Write the size of train : ";
    std :: cin  >> n;
 
    for (int i = 1; i <= n; ++i) {
        std :: cout << "Set " << i << " = ";
        std :: cin >> tmp;
        stk.push(tmp);
    }
 
    return stk;
}
 
int main(int argc, char ** argv) {
    stack tp1;
    stack tp2;
    stack rsl;
  
    //assert(argc == 2);
    //rsl = read_file(argv[1]);
 
    rsl = read_console();
 
    std :: cout << " -- Input -- " << std :: endl;
    rsl.print();
 
    while (!rsl.empty()) {
        int tmp = rsl.pop();
        if ((tmp % 2) == 0) {
            tp1.push(tmp);
        }
        else {
            tp2.push(tmp);
        }
    }
 
    std :: cout << " -- Train 1 -- " << std :: endl;
    tp1.print();
 
    std :: cout << " -- Train 2 -- " << std :: endl;
    tp2.print();
 
    return 0;
}
Добавлено через 1 минуту
изменения только в 50 строке?
Digit@ll
Brainsbreaker
 Аватар для Digit@ll
832 / 343 / 27
Регистрация: 01.02.2011
Сообщений: 1,483
26.05.2011, 00:33     Не компилирует на вижуал, как быть? #10
Только заметил, include stdafx.h первым должен быть, а не последним... О_о
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2011, 00:38     Не компилирует на вижуал, как быть?
Еще ссылки по теме:

Точка выхода в вижуал С++ 2010 C++
Переделать прогу с паскаля в Вижуал C++
Ошибка LNK2019 в вижуал студио C++

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

Или воспользуйтесь поиском по форуму:
Muqp
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 6
26.05.2011, 00:38  [ТС]     Не компилирует на вижуал, как быть? #11
Цитата Сообщение от Digit@ll Посмотреть сообщение
Только заметил, include stdafx.h первым должен быть, а не последним... О_о
спасибо, помогло)
Yandex
Объявления
26.05.2011, 00:38     Не компилирует на вижуал, как быть?
Ответ Создать тему
Опции темы

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