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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
#1

Непонятная ошибка компилятора - C++

20.02.2013, 17:43. Просмотров 521. Ответов 11
Метки нет (Все метки)

Писал программу, вроде бы все должно быть правильно, но вот только компилятор VS2010 выдает такую ошибку:
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
1>E:\c++\Task1_1\Task1_1\Debug\Task1_1.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

С чем это может быть связано?

вот код:
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
109
110
111
112
113
114
115
/////////////Man.h//////
#pragma once
const int l_name = 30;
const int l_year = 5;
const int l_pay = 10;
const int l_buf = l_name + l_year + l_pay;
 
class Man
{
public:
    Man(int lName = 30);
    ~Man();
    bool CompareName(const char*) const;
    int GetBirthYear() const { return birth_year; }
    float GetPay() const { return pay; }
    char* GetName() const { return pName; }
    void Print() const;
    void SetBirthYear(const char*);
    void SetName(const char*);
    void SetPay(const char*);
private:
    char* pName;
    int birth_year;
    float pay;
};
/////////Man.cpp/////////////
#include "Man.h"
#include <iostream>
#include <cstring>
using namespace std;
 
 
Man::Man(int lName)
{
    cout<<"Constructor is working"<<endl;
    pName= new char[lName+1];
}
 
 
Man::~Man(void)
{
    cout<<"Destructor is working"<<endl;
    delete []pName;
}
 
void Man::SetName(const char* fromBuf){
    strncpy(pName,fromBuf,l_name);
    pName[l_name]=0;
}
 
void Man::SetBirthYear(const char* fromBuf){
    birth_year=atoi(fromBuf+l_name);
}
 
void Man::SetPay(const char* fromBuf){
    pay=atof(fromBuf+l_name+l_year);
}
 
bool Man::CompareName(const char* name) const{
    if ((strstr(pName, name)) && (pName[strlen(name)] == ' '))
        return true;
    else
        return false;
}
 
void Man::Print() const {
    cout<<pName<<birth_year<<' '<<pay<<endl;
}
///////////Main.cpp///////////
#include<iostream.h>
#include<cstring.h>
#include "Man.h"
const char filename[]="dbase.txt";
 
int main(){
    const int maxn_record=10;
    Man man[maxn_record];
    char buf[l_buf+1];
    char name[l_name+1];
 
    ifstream fin(filename);
    if(!fin){
        cout<<"Net faila "<<filename<<endl; return 1;
    }
    int i=0;
    while (fin.getline(buf,l_buf)){
        if(i>=maxn_record){
            cout<<"Slishkom bolshoi fail"; return 1;}
        man[i].SetName(buf);
        man[i].SetBirthYear(buf);
        man[i].SetPay(buf);
        i++;
    }
 
    int n_record=i, n_man=0;
    float mean_pay=0;
 
    while(true){
        cout<<"Vvedite familiy ili slovo end: ";
        cin>>name;
        if(0==strcmp(name,"end")) break;
        bool not_found=true;
        for(i=0;i<n_record;i++){
            if(man[i].CompareName(name)){
                man[i].Print();
                n_man++;mean_pay+=man[i].GetPay();
                not_found=false;
                break;
            }
        }
        if(not_found) cout<<"Takogo sotrudnika net"<<endl;
    }
    if(n_man) cout<<" Sredni oklad: "<<mean_pay/n_man<<endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2013, 17:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятная ошибка компилятора (C++):

Непонятная ошибка компилятора - C++
http://s2.ipicture.ru/uploads/20131215/cH0nj1v0.png в чом ошибка???

Непонятная ошибка компилятора Dev-Cpp - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; void s(int a) { cout&lt;&lt;a&lt;&lt;endl; } class matrix ...

Непонятная реакция компилятора на cout и оператор << - C++
Вот простой код на C++. Дело в том что этой строчке(выделено жирным), должна появиться на экране вначале первая строка, после нее слово...

Ошибка компилятора - C++
Всем привет. Начну с самого конца. Есть некий файл SpellItemEnchantment.dbc - это просто хранилище значений (массив), его структура описана...

Ошибка компилятора - C++
Не работает cout и cin Visual Studio 2008 Помогите пожалуста кто может:wall::wall::wall:

ошибка компилятора - C++
Всем привет! Я пытаюсь скомпилировать код, но компилятор выдает ошибку! class fileParser { private: int * fBuff; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
20.02.2013, 17:49 #2
почитай про ключевое слово extern где и когда используется
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,217
Записей в блоге: 3
Завершенные тесты: 1
20.02.2013, 17:57 #3
Цитата Сообщение от evgmur Посмотреть сообщение
С чем это может быть связано?
В main.cpp попробуйте добавить
C++
1
#include <fstream> //Ну или <fstream.h>
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
20.02.2013, 22:17  [ТС] #4
Цитата Сообщение от Croessmah Посмотреть сообщение
В main.cpp попробуйте добавить
C++
1
#include <fstream> //Ну или <fstream.h>
не помогло

Добавлено через 1 минуту
Цитата Сообщение от aLarman Посмотреть сообщение
почитай про ключевое слово extern где и когда используется
почитал, но не очень понял, зачема его использовать в данном примере. Прошу извенения, т.к. с ООП я только начинаю знакомиться, трудно перестроиться после структурного...
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
20.02.2013, 22:22 #5
Цитата Сообщение от evgmur Посмотреть сообщение
с ООП я только начинаю знакомиться
А с С++ вообще ты тоже только начинаешь?
Может у тебя проект и не создан.

Добавлено через 1 минуту
Цитата Сообщение от aLarman Посмотреть сообщение
почитай про ключевое слово extern где и когда используется
а где тут вообще может extern понадобиться? В какой строке?
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
20.02.2013, 22:34  [ТС] #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А с С++ вообще ты тоже только начинаешь?
Может у тебя проект и не создан.

Добавлено через 1 минуту

а где тут вообще может extern понадобиться? В какой строке?
ну не до такой степени начинаю, поэтому с проектом все нормально
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
20.02.2013, 22:36 #7
код скомпилился нормально. но не линкуется. скорее всего из-за неправильного типа проекта. для такой программки нужнен Win32 консольный проект. Может у вас не консольный а просто Win32?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
20.02.2013, 22:51 #8
C++
1
2
3
//main.cpp
#include <fstream>
using namespace std;
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
20.02.2013, 22:54  [ТС] #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
3
//main.cpp
#include <fstream>
using namespace std;
спасибо, помогло, но вот я не очень понимаю, что значит пространство имен std и зачем оно нужно...
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,217
Записей в блоге: 3
Завершенные тесты: 1
20.02.2013, 23:04 #10
В старых файлах, например, в iostream.h все свалено в глобальное пространство имен. В новых же в пространстве имен std. У Вас, кстати, подключаются старые хедеры, которые уже устарели давно. Лучше поставьте более свежий компилятор
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
20.02.2013, 23:06 #11
Цитата Сообщение от Croessmah Посмотреть сообщение
Лучше поставьте более свежий компилятор
MSVS2010 недостаточно нов?
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,217
Записей в блоге: 3
Завершенные тесты: 1
20.02.2013, 23:19 #12
Kuzia domovenok, ТС включает iostream.h и если мне не изменяет память, то в десятой студии нет этого хедера, так же как и cstring.h и у него все компилируется, поэтому делаю вывод, что у ТС старый компилятор и никак не студия 10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2013, 23:19
Привет! Вот еще темы с ответами:

Ошибка компилятора - C++
#include &lt;iostream&gt; using namespace std; class ss { public: static bool progress; void changeProgress()

Ошибка компилятора - C++
Пишет на последнюю строчку, что требуется while и синтаксическая ошибка } #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace...

Ошибка компилятора C2360 - C++
Здравствуйте,форумчане) Я тут переделываю загрузчик модели,чтобы мог не один начальный меш загрузить,а все,которые есть на сцене.В итоге...

(+ - % / *) ошибка математики компилятора? - C++
Всем привет! Мне нужно мнение общественности, чтобы разобраться с одной непонятной, для меня, ситуацией. Среда разработки - Arduino...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.02.2013, 23:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru