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] Вверх
|
|
|
Правила раздела:
1. Название темы — краткое описание кто/что против кого/чего
2. В первом сообщении — список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа «Венда/Слюникс — ацтой» считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Простая задача
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Mr.Delphist Цитата fatal error: stdafx.h: No such file or directory Цитата error: ‘_TCHAR’ has not been declared Цитата undefined reference to `main’ |
JoeUser |
|
Ну и мой вариант на Цэ++, не оригинально … но как-то так #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 |
|
Цитата 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’ А эта парочка — из студийного же шаблона в ожидании простой/юникодной командной строки. Меняем int _tmain(int argc, _TCHAR* argv[]) на каноничный int main() Должно заработать. Сорри, особо не заморачивался с кросс-компиляторностью ввиду позднего времени поста. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Holy Wars
- Следующая тема
[ 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:
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
Joined Oct 1, 2007
·
1,042 Posts
Quote:
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
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
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
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»