Error tchar has not been declared

Не компилируется [Error] '_TCHAR' has not been declared C++ Решение и ответ на вопрос 1831344
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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
#include <cstring>
#include <cstdlib>
#include <conio.h>
#include <iostream>
#include <fstream>
#include <ctime>
#include <math.h>
using namespace std;
 
 
// Ôóíêöèÿ ãåíåðàöèè òåêñòîâîãî ôàéëà ñ ïîñëåäîâàòåëüíîñòüþ ñèìâîëîâ 0, 1, 2, 3 ñ çàäàííîé âåðîÿòíîñòüþ
//  ñëó÷àå óñïåøíîé ãåíåðàöèè ôóíêöèÿ âîçâðàùàåò true, èíà÷å false
bool GenerateFile(
                    char *fname,    // èìÿ ôàéëà ñ ïîñëåäîâàòåëüíîñòüþ
                    char s[],       // ìàññèâ àëôàâèòà ïîñëåäîâàòåëüíîñòè
                    double p[],     // ìàññèâ ñî çíà÷åíèÿìè âåðîÿòíîñòåé
                    int total       // îáùåå êîëè÷åñòâî ñèìâîëîâ â ïîñëåäîâàòåëüíîñòè
                  )
{
    // Ïðîâåðêà ïåðåäàííûõ âåðîÿòíîñòåé
    if (p[0] < 0 || p[1] < 0 || p[2] < 0 || p[3] < 0 ||
        (p[0] + p[1] + p[2] + p[3]) != 1.0)
    {
        cout << "Ïåðåäàíû íåäîïóñòèìûå çíà÷åíèÿ âåðîÿòíîñòåé ñèìâîëîâ." << endl;
        cout << "Ôàéë íå ìîæåò áûòü ñãåíåðèðîâàí." << endl;
        return false;
    }
    // Ðàññ÷èòûâàåì íåîáõîäèìîå êîëè÷åñòâî êàæäîãî ñèìâîëà äëÿ ãåíåðàöèè
    int s1cnt = (int)(p[0] * total); // êîëè÷åñòâî ñèìâîëîâ s0
    int s2cnt = (int)(p[1] * total); // êîëè÷åñòâî ñèìâîëîâ s1
    int s3cnt = (int)(p[2] * total); // êîëè÷åñòâî ñèìâîëîâ s2
    int s4cnt = (int)(p[3] * total); // êîëè÷åñòâî ñèìâîëîâ s3
    
    // Ñîçäàåì îáúåêò êëàññà ofsteream è ñâÿçûâàåì åãî ñ ôàéëîì äëÿ çàïèñè
    ofstream fout(fname);
 
    // Èíèöèàëèçàöèÿ ãåíåðàòîðà ñëó÷àéíûõ ÷èñåë
    srand(time(0));
 
    // Öèêë ãåíåðàöèè è çàïèñè ñèìâîëîâ â ôàéë
    for (int i = 0; i < total; i++)
    {
        // Ãåíåðèðóåì ñëó÷àéíîå ÷èñëî îò 1 äî total
        int rnd = 1 + rand() % total;
 
        //  çàâèñèìîñòè îò çíà÷åíèÿ ïîëó÷åííîãî ÷èñëà, çàïèñûâàåì ñîîòâåòñòâóþùèé ñèìâîë â ôàéë
        if (0 < rnd && rnd <= s1cnt)
            fout << s[0];
        else if (s1cnt < rnd && rnd <= s1cnt + s2cnt)
            fout << s[1];
        else if (s1cnt + s2cnt < rnd && rnd <= s1cnt + s2cnt + s3cnt)
            fout << s[2];
        else if (s1cnt + s2cnt + s3cnt < rnd && rnd <= total)
            fout << s[3];
    }
 
    // Çàêðûâàåì ôàéë
    fout.close();
 
    cout << "Ôàéë " << fname << " ñãåíåðèðîâàí óñïåøíî." << endl;
 
    return true;
}
 
// Ôóíêöèÿ âû÷èñëåíèÿ ýíòðîïèè ïîñëåäîâàòåëüíîñòè ïî ôîðìóëå Øåííîíà
double H(
        int m,      // ÷èñëî âîçìîæíûõ ñîñòîÿíèé
        double p[]  // âåðîÿòíîñòè ñîñòîÿíèé
       )
{
    double entropy = 0;
 
    for (int k = 0; k < m; k++)
    {
        entropy += p[k] * log2(p[k]);
    }
 
    return -entropy;
}
 
// Ôóíêöèÿ ïîèñêà ñèìâîëüíîãî ñî÷åòàíèÿ â ìàññèâå
// Åñëè ñî÷åòàíèå íàéäåíî, ôóíêöèÿ âåðíåò åãî èíäåêñ, åñëè íåò -1
int CombinationSearch(
                        char *s[]// ìàññèâ ñî÷åòàíèé ñèìâîëîâ
                        int count,  // êîëè÷åñòâî ñî÷åòàíèé â ìàññèâå
                        char *cmb   // ñèìâîëüíîå ñî÷åòàíèå äëÿ ïîèñêà
                        )
{
    for (int i = 0; i < count; i++)
    {
        if (strcmp(cmb, s[i]) == 0) return i;
    }
 
    return -1;
}
 
// Ôóíêöèÿ íàõîæäåíèÿ ÷àñòîò ðàçëè÷íûõ ñî÷åòàíèé ñèìâîëîâ òåêñòîâîãî ôàéëà
// Âîçâðàùàåò êîëè÷åñòâî íàéäåííûõ ñî÷åòàíèé ñèìâîëîâ
int CombFrequency(
                        char *fname,    // èìÿ òåêñòîâîãî ôàéëà
                        int len,        // äëèíà ñî÷åòàíèÿ
                        char *s[],      // ìàññèâ ñî÷åòàíèé ñèìâîëîâ
                        double p[]      // ìàññèâ ÷àñòîò íàéäåííûõ ñî÷åòàíèé ñèìâîëîâ
                      )
{
    char *cmb = new char(len+1);    // âûäåëÿåì ïàìÿòü äëÿ ñî÷åòàíèÿ ñèìâîëîâ
    cmb[len] = '';                // ñèìâîë êîíöà ñòðîêè
    int count = 0;                  // ñ÷åò÷èê íàéäåííûõ ñî÷åòàíèé
    int total = 0;                  // ñ÷åò÷èê îáùåãî êîëè÷åñòâà ïðî÷èòàííûõ ñî÷åòàíèé
 
    // Ñîçäàåì îáúåêò êëàññà ifsteream è ñâÿçûâàåì åãî ñ ôàéëîì äëÿ ÷òåíèÿ
    ifstream fin(fname);
 
    // Ïðîâåðêà íàëè÷èÿ ôàéëà ïîñëåäîâàòåëüíîñòè
    if (!fin.is_open())
    {
        cout << "Íå óäàëîñü îòêðûòü ôàéë " << fname << endl;
        cout << "Ñãåíåðèðóéòå ôàéë ïîñëåäîâàòåëüíîñòè." << endl;
        return -1;
    }
    
    while (true)
    {
        fin.read(cmb, len);             // ñ÷èòûâàåì èç ôàéëà ãðóïïó ñèìâîëîâ, äëèííîé len
        if (fin.eof()) break;           // åñëè ïðî÷èòàëè êîíåö ôàéëà, âûõîäèì èç öèêëà
        fin.seekg(-len+1, ios::cur);    // ñìåùàåì óêàçàòåëü ñ÷èòûâàíèÿ íåìíîãî ê íà÷àëó ôàéëà
        total++;                        // ñî÷åòàíèå ïðî÷èòàíî, óâåëè÷èâàåì ñ÷åò÷èê
        // Èùåì ïðî÷èòàííîå ñî÷åòàíèå â ìàññèâå
        int icmb = CombinationSearch(s, count, cmb);
        // Åñëè ñî÷åòàíèå íå íàéäåíî
        if (icmb < 0)
        {
            // Äîáàâëÿåì åãî â ìàññèâ
            s[count] = cmb;
            p[count] = 1;
            count++;
            // Âûäåëÿåì ïàìÿòü äëÿ ñëåäóþùåãî ñî÷åòàíèÿ
            cmb = new char(len + 1);
            cmb[len] = '';
        }
        // Åñëè ñî÷åòàíèå íàéäåíî
        else
        {
            // Óâåëè÷èâàåì ñ÷åò÷èê
            p[icmb]++;
        }
    }
 
    fin.close();
 
    if (total == 0)
    {
        cout << "Íå óäàëîñü âûÿâèòü ñî÷åòàíèÿ äëèííîé " << len << " â ôàéëå." << endl;
        cout << "Óáåäèòåñü ÷òî çàäàííàÿ äëèííà ñî÷åòàíèé íå ïðåâûøàåò ðàçìåðà ôàéëà." << endl;
        return 0;
    }
 
    // Âû÷èñëÿåì çíà÷åíèÿ ÷àñòîò ïðî÷èòàííûõ ñî÷åòàíèé
    for (int i = 0; i < count; i++)
    {
        p[i] /= total;
    }
 
    // Âîçâðàùàåì êîëè÷åñòâî íàéäåííûõ ñî÷åòàíèé
    return count;
}
 
// Ôóíêöèÿ âûâîäà ñèìâîëîâ è èõ ÷àñòîò íà ýêðàí
void SymbPrint(
                char *s[]// ìàññèâ ñèìâîëîâ
                double p[], // ìàññèâ ÷àñòîò
                int count   // êîëè÷åñòâî ñèìâîëîâ
                )
{
    for (int i = 0; i < count; i++)
    {
        cout << "ñèìâîë " << s[i] << 't' << "p = " << p[i] << endl;
    }
}
 
// Ôóíêöèÿ îöåíêè ýíòðîïèè ïîñëåäîâàòåëüíîñòè äëÿ îòäåëüíûõ ñèìâîëîâ
void Entropy1(
                char * fname,   // èìÿ ôàéëà
                double pt[]     // òåîðåòè÷åñêèå âåðîÿòíîñòè ðàñïðåäåëåíèÿ ñèìâîëîâ
                )
{
    char *s[4];     // ìàññèâ íàéäåííûõ ñèìâîëîâ
    double p[4];    // ìàññèâ ÷àñòîò îòäåëüíûõ ñèìâîëîâ
 
    // Íàõîäèì ÷àñòîòû îòäåëüíûõ ñèìâîëîâ â ôàéëå
    int m = CombFrequency(fname, 1, s, p);
    if (m > 0)
    {
        SymbPrint(s, p, m);
        // Âû÷èñëÿåì çíà÷åíèÿ ýíòðîïèè ïî ôîðìóëå Øåííîíà äëÿ íàéäåííûõ ÷àñòîò è äëÿ òåîðåòè÷åñêèõ çíà÷åíèé
        cout << "Îöåíêà ýíòðîïèè: " << H(m, p) << endl;
        cout << "Òåîðåòè÷åñêîå çíà÷åíèå ýíòðîïèè: " << H(4, pt) << endl;
    }
}
 
// Ôóíêöèÿ îöåíêè ýíòðîïèè ïîñëåäîâàòåëüíîñòè äëÿ ïàð ñèìâîëîâ
void Entropy2(
                char * fname,   // èìÿ ôàéëà
                double pt[]     // òåîðåòè÷åñêèå âåðîÿòíîñòè ðàñïðåäåëåíèÿ ñèìâîëîâ
                )
{
    char *s[16];        // ìàññèâ íàéäåííûõ ñèìâîëîâ
    double p[16];       // ìàññèâ ÷àñòîò îòäåëüíûõ ñèìâîëîâ
 
    // Íàõîäèì ÷àñòîòû ïàð ñèìâîëîâ â ôàéëå f1.txt
    int m = CombFrequency(fname, 2, s, p);
    if (m > 0)
    {
        SymbPrint(s, p, m);
        // Âû÷èñëÿåì çíà÷åíèÿ ýíòðîïèè ïî ôîðìóëå Øåííîíà äëÿ íàéäåííûõ ÷àñòîò
        cout << "Îöåíêà ýíòðîïèè: " << H(m, p) / 2 << endl;
        // Âû÷èñëÿåì òåîðåòè÷åñêèå âåðîÿòíîñòè äëÿ ïàð ñèìâîëîâ
        int k = 0;
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
            {
                p[k] = pt[i] * pt[j];
                k++;
            }
            
        // Âû÷èñëÿåì çíà÷åíèÿ ýíòðîïèè äëÿ òåîðåòè÷åñêèõ çíà÷åíèé
        cout << "Òåîðåòè÷åñêîå çíà÷åíèå ýíòðîïèè: " << H(m, p) / 2 << endl;
    }
}
 
 
 
// Ôóíêöèÿ âûâîäà ìåíþ íà êîíñîëü
void ShowMenu()
{
    system("cls");
    cout << "1 - Ñãåíåðèðîâàòü ôàéë ñ ðàâíîìåðíûì ðàñïðåäåëåíèåì."                       << endl;
    cout << "2 - Ñãåíåðèðîâàòü ôàéë ñ íåðàâíîìåðíûì ðàñïðåäåëåíèåì."                   << endl;
    cout << "3 - Îöåíêà ýíòðîïèè c ðàâíîìåðíûì ðàñïðåäåëåíèåì (îòäåëüíûå ñèìâîëû)."      << endl;
    cout << "4 - Îöåíêà ýíòðîïèè ñ ðàâíîìåðíûì ðàñïðåäåëåíèåì (ïàðû ñèìâîëîâ)."         << endl;
    cout << "5 - Îöåíêà ýíòðîïèè ñ íåðàâíîìåðíûì ðàñïðåäåëåíèåì (îòäåëüíûå ñèìâîëû)." << endl;
    cout << "6 - Îöåíêà ýíòðîïèè ñ íåðàâíîìåðíûì ðàñïðåäåëåíèåì (ïàðû ñèìâîëîâ)."     << endl;
    cout << "7 - Âûõîä." << endl;
}
 
char *fname1 = "f1.txt";    // èìÿ ôàéëà äëÿ ïîñëåäîâàòåëüíîñòè ñ ðàâíîìåðíûì ðàñïðåäåëåíèåì
char *fname2 = "f2.txt";    // èìÿ ôàéëà äëÿ ïîñëåäîâàòåëüíîñòè ñ íåðàâíîìåðíûì ðàñïðåäåëåíèåì
 
char s[] = { 'a', 'b', 'c', 'd' };          // ìàññèâ àëôàâèòà ïîñëåäîâàòåëüíîñòåé
double p1[] = {0.25, 0.25, 0.25, 0.25};     // ìàññèâ âåðîÿòíîñòåé  äëÿ ïîñëåäîâàòåëüíîñòè ñ ðàâíîìåðíûì ðàñïðåäåëåíèåì
double p2[4];                               // ìàññèâ âåðîÿòíîñòåé  äëÿ ïîñëåäîâàòåëüíîñòè ñ íåðàâíîìåðíûì ðàñïðåäåëåíèåì
 
// Îáðàáîò÷èê ïóíêòà Ìåíþ 1
void Menu1()
{
    int fsize = 0;
 
    system("cls");
    cout << "Ãåíåðàöèÿ ôàéëà ïîñëåäîâàòåëüíîñòè ñ ðàâíîìåðíûì ðàñïðåäåëåíèåì." << endl;
    cout << "Âåðîÿòíîñòè ñèìâîëîâ:" << endl;
    cout << "ñèìâîë " << s[0] << 't' << "p = " << p1[0] << endl;
    cout << "ñèìâîë " << s[1] << 't' << "p = " << p1[1] << endl;
    cout << "ñèìâîë " << s[2] << 't' << "p = " << p1[2] << endl;
    cout << "ñèìâîë " << s[3] << 't' << "p = " << p1[3] << endl;
    cout << "Ââåäèòå íåîáõîäèìûé ðàçìåð ôàéëà (áàéò): ";
    cin >> fsize;
    GenerateFile(fname1, s, p1, fsize);
    system("pause");
}
 
// Îáðàáîò÷èê ïóíêòà Ìåíþ 2
void Menu2()
{
    int fsize = 0;
 
    system("cls");
    cout << "Ãåíåðàöèÿ ôàéëà ïîñëåäîâàòåëüíîñòè ñ íåðàâíîìåðíûì ðàñïðåäåëåíèåì." << endl;
    cout << "Ââåäèòå çíà÷åíèÿ âåðîÿòíîñòåé äëÿ ñèìâîëîâ:" << endl;
    cout << "ñèìâîë " << s[0] << 't' << "p = ";
    cin >> p2[0];
    cout << "ñèìâîë " << s[1] << 't' << "p = ";
    cin >> p2[1];
    cout << "ñèìâîë " << s[2] << 't' << "p = ";
    cin >> p2[2];
    p2[3] = 1 - p2[0] - p2[1] - p2[2];
    cout << "ñèìâîë " << s[3] << 't' << "p = " << p2[3] << endl;
    cout << "Ââåäèòå íåîáõîäèìûé ðàçìåð ôàéëà (áàéò): ";
    cin >> fsize;
    GenerateFile(fname2, s, p2, fsize);
    system("pause");
}
 
// Îáðàáîò÷èê ïóíêòà Ìåíþ 3
void Menu3()
{
    system("cls");
    cout << "Îöåíêà ýíòðîïèè ïîñëåäîâàòåëüíîñòè c ðàâíîìåðíûì ðàñïðåäåëåíèåì (îòäåëüíûå ñèìâîëû)." << endl;
    Entropy1(fname1, p1);
    system("pause");
}
 
// Îáðàáîò÷èê ïóíêòà Ìåíþ 4
void Menu4()
{
    system("cls");
    cout << "Îöåíêà ýíòðîïèè ïîñëåäîâàòåëüíîñòè c ðàâíîìåðíûì ðàñïðåäåëåíèåì (ïàðû ñèìâîëîâ)." << endl;
    Entropy2(fname1, p1);
    system("pause");
}
 
// Îáðàáîò÷èê ïóíêòà Ìåíþ 5
void Menu5()
{
    system("cls");
    cout << "Îöåíêà ýíòðîïèè ïîñëåäîâàòåëüíîñòè c íåðàâíîìåðíûì ðàñïðåäåëåíèåì (îòäåëüíûå ñèìâîëû)." << endl;
    Entropy1(fname2, p2);
    system("pause");
}
 
// Îáðàáîò÷èê ïóíêòà Ìåíþ 6
void Menu6()
{
    system("cls");
    cout << "Îöåíêà ýíòðîïèè ïîñëåäîâàòåëüíîñòè c íåðàâíîìåðíûì ðàñïðåäåëåíèåì (ïàðû ñèìâîëîâ)." << endl;
    Entropy2(fname2, p2);
    system("pause");
}
 
// Îñíîâíàÿ ïðîãðàììà
int _tmain(int argc, _TCHAR* argv[])
{
    while (true)
    {
        ShowMenu();
 
        switch (_getch())
        {
        case '1': Menu1(); break;
        case '2': Menu2(); break;
        case '3': Menu3(); break;
        case '4': Menu4(); break;
        case '5': Menu5(); break;
        case '6': Menu6(); break;
        case '7':  return 0;
        default:  break;
        }
    }
    return 0;
}
  • Печать

Страницы: [1]   Вниз

Тема: gcc не видит файл stdafx.h(Новая проблема)  (Прочитано 7045 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
Kalim

в принципе вывод из терминала скажет всё за меня

kalim@kalim-Desktop:~$ gcc /media/61F5-2A71/Table.cpp -o Table.c++
/media/61F5-2A71/Table.cpp:4: fatal error: stdafx.h: Нет такого файла или каталога
compilation terminated.

что с этим делать??? как исправить???

« Последнее редактирование: 15 Декабря 2010, 22:40:55 от Kalim »

Убунтовод не приговор


Оффлайн
Not eXist

« Последнее редактирование: 15 Декабря 2010, 15:51:10 от Not eXist »


Оффлайн
qpalzz

Скорее всего код взят из MS Visual Studio, в котором по дефолту подключается куча всякой фигни ;)


Оффлайн
Not eXist

Скорее всего код взят из MS Visual Studio, в котором по дефолту подключается куча всякой фигни ;)

Даже под VS всегда имел привычку создавать пустой проект.


Оффлайн
Kalim

код писал сам но в MS VS 2007….всем спасибо

теперь проблема в conio.h,a без него он не видит _getch();

kalim@kalim-Desktop:~$ gcc /media/61F5-2A71/Table.cpp -o Table.c++
/media/61F5-2A71/Table.cpp:7: fatal error: conio.h: Нет такого файла или каталога
compilation terminated.

kalim@kalim-Desktop:~$ gcc /media/61F5-2A71/Table.cpp -o Table.c++
/media/61F5-2A71/Table.cpp:10: error: ‘_TCHAR’ has not been declared
/media/61F5-2A71/Table.cpp: In function ‘int _tmain(int, int**)’:
/media/61F5-2A71/Table.cpp:36: error: ‘_getch’ was not declared in this scope

« Последнее редактирование: 15 Декабря 2010, 21:49:33 от Kalim »

Убунтовод не приговор


Оффлайн
Not eXist

Насчёт conio.h в поиск по форуму аж бегом, уже надоело объяснять про то, что это не стандартная библиотека C++ и присутствует только в MS VS. Чем её заменить, тоже уже обсуждалось миллион раз.


Оффлайн
Kalim

чёрт с conio….почему он не узнает вот это:

/media/61F5-2A71/Table.cpp:10: error: ‘_TCHAR’ has not been declared
/media/61F5-2A71/Table.cpp: In function ‘int _tmain(int, int**)’:


Оффлайн
Yurror

Потому что иди читай стандарт на язык Си.
http://msdn.microsoft.com/ru-ru/library/c426s321.aspx

Я вижу еще как минимум
1) int _tmain(int, _TCHAR**) вместо int main(int, char**) (_tmain это хрень какая-то а не точка входа в программу)
2) компиляция C++-исходников Си-компилятором, что непременно аукнется на этапе линковки

Объявляю конкурс кто еще найдет касяки. Чую их там ой как не мало!

Kalim, тебя впереди ждет еще много «новых» проблем. Только новые они лично для тебя. Осиль гугл, не насилуй людей.

P.S. Убунтовод, конечно, не приговор, но звание любителя MS-фич ты себе заработал. Это пострашнее.

« Последнее редактирование: 15 Декабря 2010, 23:33:11 от Yurror »


Оффлайн
Kalim

простите конечно за то что в универе требуют код оформленный в МS VS 2007….но мне вот захотелось использовать для выполнения терминал в Ubuntu,чтобы не бегать каждый раз в винду если нужна простенькая программа например для вывода таблицы квадратов или кубов…

PS сам код уже давно скомпилирован и бегает  ;) а «новые» проблемы уж решу не заглядывая сюда…не создавая тем,спасибо товарисч за радушный приём)))))

« Последнее редактирование: 16 Декабря 2010, 00:08:46 от Kalim »

Убунтовод не приговор


Оффлайн
Vovaldo

в принципе вывод из терминала скажет всё за меня
kalim@kalim-Desktop:~$ gcc /media/61F5-2A71/Table.cpp -o Table.c++
/media/61F5-2A71/Table.cpp:4: fatal error: stdafx.h: Нет такого файла или каталога
compilation terminated.

что с этим делать??? как исправить???

Установить оффтопик и избавить данный форум и всё сообщество от своего присутствия.


Оффлайн
ierofant

Установить оффтопик и избавить данный форум и всё сообщество от своего присутствия.

Не удивительно, что тут лишь по одной теме в день открывается. Скоро и того меньше будет.


Оффлайн
Vovaldo

Установить оффтопик и избавить данный форум и всё сообщество от своего присутствия.

Не удивительно, что тут лишь по одной теме в день открывается. Скоро и того меньше будет.

Для тем подобных данной это было бы супер, но вся история человечества показывает, что это не так.
«Общая сумма разума на планете — величина постоянная, а население постоянно растет.»


Оффлайн
ierofant

«Общая сумма разума на планете — величина постоянная, а население постоянно растет.»

Звучит, конечно, забавно. Но к реальности отношения не имеет.


  • Печать

Страницы: [1]   Вверх

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    Правила раздела:

    1. Название темы — краткое описание кто/что против кого/чего
    2. В первом сообщении — список параметров, по которым идет сравнение.
    3. Старайтесь аргументировать свои высказывания. Фразы типа «Венда/Слюникс — ацтой» считаются флудом.
    4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.

    >
    Простая задача

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #61

    ,
    03.05.15, 00:53

      Mr.Delphist

      Цитата

      fatal error: stdafx.h: No such file or directory

      Цитата

      error: ‘_TCHAR’ has not been declared

      Цитата

      undefined reference to `main’


      JoeUser



      Сообщ.
      #62

      ,
      03.05.15, 04:48

        Ну и мой вариант на Цэ++, не оригинально … но как-то так :-?

        ExpandedWrap disabled

          #include <iostream>

          #include <sstream>

          #include <deque>

          using namespace std;

          int main() {

              string s;

              deque<string> deq;

              for(stringstream ss(«мама мыла раму»); ss>>ws>>s; deq.push_front(s));

              for(auto i:deq) cout << i << » «;

          }


        Mr.Delphist



        Сообщ.
        #63

        ,
        03.05.15, 17:33

          Цитата D_KEY @ 03.05.15, 00:53

          fatal error: stdafx.h: No such file or directory

          Ну, это дефолтная строчка от Студии, ожидается для precompiled headers — можно снести смело

          Цитата D_KEY @ 03.05.15, 00:53

          error: ‘_TCHAR’ has not been declared

          Цитата D_KEY @ 03.05.15, 00:53

          undefined reference to `main’

          А эта парочка — из студийного же шаблона в ожидании простой/юникодной командной строки. Меняем

          ExpandedWrap disabled

            int _tmain(int argc, _TCHAR* argv[])

          на каноничный

          ExpandedWrap disabled

            int main()

          Должно заработать. Сорри, особо не заморачивался с кросс-компиляторностью ввиду позднего времени поста.

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • Holy Wars
          • Следующая тема

          Рейтинг@Mail.ru

          [ Script execution time: 0,0218 ]   [ 15 queries used ]   [ Generated: 9.02.23, 15:26 GMT ]  

          Joined Sep 23, 2007

          ·

          306 Posts


          Discussion Starter
          ·

          #1

          ·

          Jan 9, 2008

          Code:

          Code:

          #include "stdafx.h"
          
          int _tmain(int argc, _TCHAR* argv[])
          {
          printf("-Fahrenheit to Celsius Converter-
          ");
          printf("Fahrenheit to convert : ");
          int f = scanf_s("%d",f);
          int c = (5/9)*(f-32);
          printf("%d Degrees in Celsius is %d Degrees
          ",f,c);
          return 0;
            return 0;
          }

          when i build this in Visual Studios C++ 2008 I get this error

          Quote:

          : warning C4700: uninitialized local variable ‘f’ used

          what am i doing wrong?

          Joined Mar 7, 2006

          ·

          727 Posts

          Quote:

          Originally Posted by Chani.- View Post

          Code:

          Code:

          #include "stdafx.h"
          
          int _tmain(int argc, _TCHAR* argv[])
          {
          printf("-Fahrenheit to Celsius Converter-n");
          printf("Fahrenheit to convert : ");
          int f = scanf_s("%d",f);
          int c = (5/9)*(f-32);
          printf("%d Degrees in Celsius is %d Degreesn",f,c);
          return 0;
            return 0;
          }

          when i build this in Visual Studios C++ 2008 I get this error

          what am i doing wrong?

          I think you are using «f» before it’s being declared when you try to «scanf_s(«%d»,f);» Try to initialize it to 0 then use it. «c» should be fine since you’re not using «c» on that line.

          Joined Sep 23, 2007

          ·

          306 Posts


          Discussion Starter
          ·

          #3

          ·

          Jan 9, 2008

          thank you but can you do me a favor and test it out on your C compiler for some reason after i enter my Fahrenheit to convert it stops and gives me an error

          Code:

          Code:

          #include "stdafx.h"
          
          int _tmain(int argc, _TCHAR* argv[])
          {
          
          int f = 0;
          printf("-Fahrenheit to Celsius Converter-n");
          printf("Fahrenheit to convert : ");
          scanf_s("%d",f);
          int c = (5/9)*(f-32);
          printf("%d Degrees in Celsius is %d Degreesn",f,c);
          return 0;
            return 0;
          }

          heres the fixed code thanks to you

          Joined Mar 7, 2006

          ·

          727 Posts

          You have two «return 0;» lines. Delete one.

          EDIT:
          I tried to compile it. I don’t have stdafx.h header.

          Joined Sep 23, 2007

          ·

          306 Posts

          FireMarshallBill

          Joined Oct 1, 2007

          ·

          1,042 Posts

          Quote:

          Originally Posted by Chani.- View Post

          Code:

          Code:

          #include "stdafx.h"
          
          int _tmain(int argc, _TCHAR* argv[])
          {
          printf("-Fahrenheit to Celsius Converter-n");
          printf("Fahrenheit to convert : ");
          int f = scanf_s("%d",f);
          int c = (5/9)*(f-32);
          printf("%d Degrees in Celsius is %d Degreesn",f,c);
          return 0;
            return 0;
          }

          when i build this in Visual Studios C++ 2008 I get this error

          what am i doing wrong?

          this line int f = scanf_s(«%d»,f); uses f in the expression, which has not yet been declared. I have taken some Java, so I’m not 100% sure what exactly everything is, but i believe that is what the problem is

          Joined Feb 6, 2006

          ·

          6,922 Posts

          Joined Jul 19, 2006

          ·

          13,477 Posts

          Hmm… I also don’t have that .h file. This is the output I get:

          untitled.cpp:1:20: error: stdafx.h: No such file or directory
          untitled.cpp:4: error: ‘_TCHAR’ has not been declared
          untitled.cpp: In function ‘int _tmain(int, int**)’:
          untitled.cpp:8: error: ‘printf’ was not declared in this scope
          untitled.cpp:10: error: ‘scanf_s’ was not declared in this scope

          I have no idea what any of this means; I’m an uber noob at programming

          I tried compiling this is g++, btw.

          Edit: wouldn’t double quotes in:

          #include «stdafx.h»

          make stdaf.h a string? Shouldn’t you use < and >? I don’t know at all; I’m just using what I know; I’m probably wrong about that.

          Joined Feb 6, 2006

          ·

          6,922 Posts

          Quote:

          Originally Posted by The Hundred Gunner
          View Post

          Hmm… I also don’t have that .h file. This is the output I get:

          untitled.cpp:1:20: error: stdafx.h: No such file or directory
          untitled.cpp:4: error: ‘_TCHAR’ has not been declared
          untitled.cpp: In function ‘int _tmain(int, int**)’:
          untitled.cpp:8: error: ‘printf’ was not declared in this scope
          untitled.cpp:10: error: ‘scanf_s’ was not declared in this scope

          I have no idea what any of this means; I’m an uber noob at programming

          I tried compiling this is g++, btw.

          Edit: wouldn’t double quotes in:

          #include «stdafx.h»

          make stdaf.h a string? Shouldn’t you use < and >? I don’t know at all; I’m just using what I know; I’m probably wrong about that.

          The errors you got are because you don’t have the include file, where those functions are declared.

          As for the edit, the «#» in front of the include indicates that the line is not C++ code, but info for the compiler. In the C++ standard, include files contained in «» are local files. Files in <> are standard c++ library files

          Joined May 14, 2007

          ·

          1,714 Posts

          Joined Jul 3, 2007

          ·

          681 Posts

          What is the purpose of this? scanf_s(«%d»,f)

          Joined Jul 19, 2006

          ·

          13,477 Posts

          Quote:

          Originally Posted by ZionEx
          View Post

          What is the purpose of this? scanf_s(«%d»,f)

          And shouldn’t it be &f, to store %d (the input) as an integer of variable f?

          Joined Sep 23, 2007

          ·

          306 Posts

          Joined Feb 6, 2006

          ·

          6,922 Posts

          Quote:

          Originally Posted by The Hundred Gunner View Post
          And shouldn’t it be &f, to store %d (the input) as an integer of variable f?

          If stores into the address indicated by the second parameter. This is c++, remember, so when you give a function the int f, you give it the value held in f. In this case, that value has been initialized to 0, so it tries to store the result in the address 0x00000000. That is protected memory, so he gets the error shown.

          **edit**
          nm — I thought you typed «it shouldn’t be &f»

          Понравилась статья? Поделить с друзьями:
        • Error target voltage may be too low for reliable debugging
        • Error target not halted
        • Error target not found arch
        • Error target label does not exist
        • Error target dll has been cancelled debugger aborted