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

Не компилит код - C++

Восстановить пароль Регистрация
 
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 15:39     Не компилит код #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
#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
 
     int numb;
    char *towords(int numb)
 {
    //массив, для определения разряда, в котором находимся(сотни,десятки,еденицы...)
    int osn[11]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
 
    //массив оснований
    char *basis[11][10]={
        {"","","","","","","","","",""},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","одна","две","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три ","четыре","пять","шесть","семь","восемь","девять"}};
 
    //массив окончаний
    char *termination[10][10]={
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяча","","","миллион","","","миллиард"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"}};
 
    char *dec[10]={"десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать"};
 
    int n1=numb;
    int cnt=0;
 
    //подсчет количесива цифр в числе
    while (numb)
    {
        numb/=10;
        ++cnt;
    }
 
    char result[100]={};
    int celoe=0;
 
    while (n1){
          if (!((cnt+1) % 3)){
            if ((n1/osn[cnt])==1){
                    n1%=osn[cnt];
                    --cnt;
                    celoe=n1/osn[cnt];
                    n1%=osn[cnt];
                    strcat(result, dec[celoe]);
                --cnt;
                if (!(cnt % 3)){
                    strcat(result, " ");
                strcat(result, termination[0][cnt]);
                strcat(result, " ");
                }
            }
            if (!cnt) break;
        }
        celoe=n1/osn[cnt];
        n1%=osn[cnt];
        strcat(result, basis[cnt][celoe]);
        --cnt;
        strcat(result, " ");
        if (!(cnt % 3)){
            strcat(result, termination[celoe][cnt]);
            strcat(result, " ");
        }
    }
    OemToCharA(result,result);
    return result;
}
вот собственно код, выдет 2 ошибки:
Ошибка 10 error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
Ошибка 11 error LNK1120: 1 неразрешенных внешних элементов

что нужно испавить,подскажите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2013, 15:39     Не компилит код
Посмотрите здесь:

Почему не компилит C++
Код написан в Dev C. Не работает в Visual. Как нужно переделать код? C++
C++ wxDev-C++ 7.3.1 не компилит.
C++ не компилит простой код c++
не компилит code blocks C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dr_Quake
Заблокирован
08.06.2013, 15:43     Не компилит код #2
Так у тебя это просто код, функцию то задай в которой он будет. Если это сама программа - ты main вырезал и у тебя просто код в вакууме, при старте ибо ищется и вызывается всегда main. Запихай код хотя бы на уровне void main() { ... }.
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 15:50  [ТС]     Не компилит код #3
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
[CPP]#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
 
 void main()
    
    char *towords(int numb)
 {
     using namespace std; 
    //массив, для определения разряда, в котором находимся(сотни,десятки,еденицы...)
    
    int osn[11]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
 
    //массив оснований
    char *basis[11][10]={
        {"","","","","","","","","",""},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","одна","две","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три ","четыре","пять","шесть","семь","восемь","девять"}};
 
    //массив окончаний
    char *termination[10][10]={
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяча","","","миллион","","","миллиард"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"}};
 
    char *dec[10]={"десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать"};
 
    int n1=numb;
    int cnt=0;
 
    //подсчет количесива цифр в числе
    while (numb)
    {
        numb/=10;
        ++cnt;
    }
 
    char result[100]={};
    int celoe=0;
 
    while (n1){
          if (!((cnt+1) % 3)){
            if ((n1/osn[cnt])==1){
                    n1%=osn[cnt];
                    --cnt;
                    celoe=n1/osn[cnt];
                    n1%=osn[cnt];
                    strcat(result, dec[celoe]);
                --cnt;
                if (!(cnt % 3)){
                    strcat(result, " ");
                strcat(result, termination[0][cnt]);
                strcat(result, " ");
                }
            }
            if (!cnt) break;
        }
        celoe=n1/osn[cnt];
        n1%=osn[cnt];
        strcat(result, basis[cnt][celoe]);
        --cnt;
        strcat(result, " ");
        if (!(cnt % 3)){
            strcat(result, termination[celoe][cnt]);
            strcat(result, " ");
        }
    }
    OemToCharA(result,result);
    return result;
}
[/CPP]

теперь требует ; перед char
Dr_Quake
Заблокирован
08.06.2013, 15:57     Не компилит код #4
Естественно, фиг ли он у тебя вне { }, равно как и using namespace пишется вне main
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 16:06  [ТС]     Не компилит код #5
пожалуйста запиши как должно быть,оно не начинает работать от моих перестановок,наоборот больше вопросов задает.
Dr_Quake
Заблокирован
08.06.2013, 16:22     Не компилит код #6
Полный код где? Это натыренный тобой копипастом откуда-то ещё и там много неопределённых переменных вроде numb. Аналогично return result; - это не для main, это кусок тупо скопированной функции откуда-то.
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 16:34  [ТС]     Не компилит код #7
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#include <iostream>
#include <string>
#include <string.h>
#include <Windows.h>
#include "stdafx.h"
using namespace std;
 
void RMes(char *message)//функция для выводла русского текста
{
    char rmessage[256];
    CharToOem(message,rmessage);
    cout<<rmessage;
}
 
void DaysToText(int days)//функция преобразет день в текст
{
 
    char digits_twelve[][20]={" первое"," второе"," третье"," четвертое"," пятое"," шестое"," седьмое"," восьмое"," девятое"," десятое"," одинадцатое"," двенадцатое"," тринадцатое"," четырнадцатое"," пятнадцатое"," шестнадцатое"," семнадцатое"," восемнадцатое"," девятнадцатое"};
    char digits_des[][20]={"десять"," двадцать"," тридцать"," сорок"," пятьдесят"," шестьдесят"," семьдесят"," восемьдесят"," девяносто"};
    char digits_des_only[][20]={" десятое"," двадцатое"," тридцатое"};
    //все возможные числда в текстовом эквавиленте
 
    char day_res[50]={0};
    
    int value = days;
    int amount;
        
        while(value)
        {       
                if(value >= 20 && value < 100)
                {
                    amount=value/10; 
                    value-=10*amount;
                    if(value == 0)
                    {
                        strcat(day_res,digits_des_only[amount-1]); 
                        break;//
                    }
                    else strcat(day_res,digits_des[amount-1]);
                    
                    
                }
                if (value < 20)
                {   
                    strcat(day_res,digits_twelve[value-1]);
                    value=0;
                }
                             
        }
        RMes("\t");
        RMes(day_res);
}
 
void MounthToText(int mounth)
{
    char mounth_text[][10]={" января"," февраля"," марта"," апреля"," майя"," июня"," июля"," августа"," сентября"," октября"," ноября"," декабря"};
    char mounth_res[10]={0};
    int value = mounth; 
    strcat(mounth_res,mounth_text[value-1]);
    RMes(mounth_res);
}
///////
void YearToText(int year)
{
    char digits[][10]={" одна"," две"," три"," четыри"," пять"," шесть"," семь"," восемь"," девять"};
    char digits_only[][10]={" одна"," двух"," трьох"," четырьох"," пяти"," шести"," семи"," восеми"," девяти"};
        
    char digits_twelve[][20]={" первого"," второго"," третьего"," четвертого"," пятого"," шестого"," седьмого"," восьмого"," девятого"," десятого"," одинадцатого"," двенадцатого"," тринадцатого"," четырнадцатого"," пятнадцатого"," шестнадцатого"," семнадцатого"," восемнадцатого"," девятнадцатого"};
    
    char digits_des[][20]={" десять"," двадцать"," тридцать"," сорок"," пятьдесят"," шестьдесят"," семьдесят"," восемьдесят"," девяносто"};
    char digits_des_only[][20]={" десятого"," двадцатого"," тридцатого"," сорокового"," пятьдисятого"," шестидесятого"," семидесятого"," восьмидесятго"," девяностого"};
    
    char digits_sot[][20]={" сто"," двести"," триста"," четыриста"," пятьсот"," шестьсот"," семьсот"," восемьсот"," девятьсот",};
    char digits_sot_only[][20]={" сотого"," двухсотого"," трьохсотого"," четырьохсотого"," пятьсотого"," шестьсотого"," семьсотого"," восемьсотого"," деветьсотого",};
 
    char digits_thousand[][10]={" тысяча"," тысячи"," тысяч","тысячного"};
    
    char year_res[100]={0};
 
    int amount=0,value=0;
    
        value = year;
        
        while(value)
        {
                if(value >= 1000 && value < 10000)
                {
                    amount=value/1000; 
                    value-=1000*amount;
                    if(value == 0)
                    {
                        if(amount == 1)strcat(year_res,digits_thousand[3]);
                        else
                        {
                        strcat(year_res,digits_only[amount-1]);
                        strcat(year_res,digits_thousand[3]);
                        }
                        break;
                    }
                    else 
                    {
                        strcat(year_res,digits[amount-1]);
                        if(amount == 1)strcat(year_res,digits_thousand[0]);
                        if(amount == 2 || amount == 3 || amount == 4)strcat(year_res,digits_thousand[1]);
                        if(amount == 5 || amount == 6 || amount == 7 || amount == 8 || amount == 9)strcat(year_res,digits_thousand[2]);
                    }
 
                }
 
                if(value >= 100 && value < 1000)
                {
                    amount=value/100; 
                    value-=100*amount;
                    if(value == 0)
                    {
                        strcat(year_res,digits_sot_only[amount-1]);
                        break;
                    }
                    else 
                    {
                        strcat(year_res,digits_sot[amount-1]);
                    }
 
                }
 
                if(value >= 20 && value < 100)
                {
                    amount=value/10; 
                    value-=10*amount;
                    if(value == 0)
                    {
                        strcat(year_res,digits_des_only[amount-1]);
                        break;
                    }
                    else strcat(year_res,digits_des[amount-1]);
                    
                    
                }
                if (value < 20)
                {   
                    strcat(year_res,digits_twelve[value-1]);
                    value=0;
                }
                             
        }
        strcat(year_res," года");
        RMes(year_res);
        
    
}
 
void Menu()
{
    RMes( "\tВведите дату формата дд мм гг( например 03 11 1991 ):\n");
}
 
void Vubor(int *choise)
{
    RMes( "\tДля продолжения нажмите (1)\n\tДля выхода нажмите (2)\n\tВаш выбор:");
    int help;
    cin>>help;
    *choise = help;//выбор равняется 1 или 2
    cout<<endl;
 
}
 
void Format()
{
    int i;
    int date[3];
 
    RMes("\tвведите дату ( 03 11 1991 ): ");
 
    for(i=0;i<3;i++)cin>>date[i];
 
    if(date[0] > 31 || date[0] <= 0) RMes("\tВы ввели не существующий день\n\n");
    else
    {
        if(date[1] > 12 || date[1] <= 0) RMes("\tВы ввели не существующий месяц\n\n");
        else
        {
            if(date[2] > 9999 || date[2] <= 0) RMes("\tВы ввели слишком большой год (или год до н.э.)\n\n");
            else//
            {
                RMes("\tКонвертированая дата:\n");
                DaysToText(date[0]);
                MounthToText(date[1]);
                YearToText(date[2]);
                cout<<endl<<endl;
            }
        }
    }
 
}
 
 
void main()
{
    int choise = 0;
    RMes("\t\t\tЗдраствуйте!\n");
    Menu();
    Format();
    while (true)
    {
    Vubor(&choise);
 
    if(choise==1)
    {
        Menu();
        Format();
    }
    if(choise==2)exit(1);
    
    }
    
    
}
блин,просто курсач..я написал сам сначала,её не устроил. вот пытаюсь заного,но беру у кого то что то
Dr_Quake
Заблокирован
08.06.2013, 16:44     Не компилит код #8
Так что ты делаешь то? Пытаешься прикрутить эту функцию к твоей работе чтобы выводило в тексте числа или что?
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 16:47  [ТС]     Не компилит код #9
я пыталяс это сделать до этого. глянь пожалуйста последний код ,что я кинул. это весь курсовик
рабочий. в универе запускал. тут чето не хочт
Dr_Quake
Заблокирован
08.06.2013, 16:49     Не компилит код #10
Ну ему не нравится CharToOem, но там адаптировать - 10 секунд.

Код
void RMes(char* message)//функция для выводла русского текста
{
    char rmessage[256];
    CharToOemA(message,rmessage);
    cout<<rmessage;
}
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 16:57  [ТС]     Не компилит код #11
пробовал . не помогло,после этого выскакивает еще куча ошибок
Dr_Quake
Заблокирован
08.06.2013, 17:33     Не компилит код #12
Так чем собираешь то? Это MSVC код, я на студии проверял. Небось DEVCPP? Пиши лог компилятора тогда.
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 23:10  [ТС]     Не компилит код #13
так что делать витоге?
Dr_Quake
Заблокирован
08.06.2013, 23:11     Не компилит код #14
Я же уже написал - отлично собирается с изменением выше в выводе. Приводи свой компилятор и логи его.
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 23:19  [ТС]     Не компилит код #15
а, прошу прощения этого не увидел.
у меня студия 10я стоит. там не запускает. а где лог глянуть? ато я никогда такими вопросами не задавался.
Dr_Quake
Заблокирован
08.06.2013, 23:23     Не компилит код #16
Внизу логично. там же где ошибки итд. Я собрал на 2008.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2013, 23:26     Не компилит код
Еще ссылки по теме:

C++ Dev-C++ нашёл ошибку и не компилит(
С++ Borland не компилит прогу C++
C++ Снова не компилит. Гляньте ошибки

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

Или воспользуйтесь поиском по форуму:
vladislavka_kh
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 34
08.06.2013, 23:26  [ТС]     Не компилит код #17
работает! спасибо большое
Yandex
Объявления
08.06.2013, 23:26     Не компилит код
Ответ Создать тему
Опции темы

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