Forum huvudsida -> Programmering -> C++ probs
Sidor: 1
Gazrog2 | 21:09 - 20:e Maj 2006 | Post #1 | |
Medlem Inlägg: 71 Skicka PM |
Tja fan! Jag har ett litet problem här. För första gången i hela mitt liv hade jag tänkt börja programmera något kul litet spel som jag faktist hade planerat att slutföra! Men som vanligt dyker det upp problem i starten som gör att jag alltid ger upp, här kommer de tre filerna jag använder: Starring Main.cc: #include <iostream> #include "Functions.cc" using namespace std; int main() { cout << "It's working "; return 0; } ########################### Functions.cc: #include <iostream> using namespace std; #define MAPSIZE 1250 int map[MAPSIZE]; int LoadMap(string filename) { ifstream data_file(filename ); for(int i = 0; i < MAPSIZE ; i++) data_file >> map[i]; return map; } ################### map1.txt: 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000##################################00000000000 00000#00000000000000000000000000000000#00000000000 00000#00000000000000000000000000000000#00000000000 00000#00000000077700000007770000000000#00000000000 00000#00000000077700000007770000000000#00000000000 00000#00000000000000000000000000000000#00000000000 00000#00000000000000000000000000000000#00000000000 ######00000000000000000000000000000000############ 00000000000000000000000000000000000000000000000000 ######00000000000000000000000000000000000000000000 00000#00000000000000000000000000000000############ 00000#00000000000000000000000000000000#00000000000 00000#00000000000000000000000000000000#00000000000 00000#00000000000000000000000000000000#00000000000 00000#00000000000000000000000000000000#00000000000 00000#00000000000000000000000000000000#00000000000 00000#################################00000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 Den blev visst lite osymetrisk nu när jag kopiera in den, den ska egentligen va fyrkantig typ, men jajja. Här kommer felmeddelandena i alla fulla fall: Functions.cc: In function EUR~int LoadMap(std::string)EUR(TM): Functions.cc:8: error: variable EUR~std::ifstream data_fileEUR(TM) has initializer but incomplete type Functions.cc:12: error: invalid conversion from EUR~int*EUR(TM) to EUR~intEUR(TM) Men nu börjar melodifestivalen. Tja fan! ------------------------- Ingen signatur! Senast redigerad 21:36 - 20:e Maj 2006 |
Nissebosselasse | 22:21 - 20:e Maj 2006 | Post #2 | |
Medlem Inlägg: 490 Skicka PM |
Konstruktorn till de flesta klasser i STL tar oftast en char * istället för en std::string, så ändra raden till ifstream data_file (filename.c_str());. Du ska även inkludera string i functions.cc. Använd aldrig klasser/funktioner utan att inkludera deras rätta headerfiler! ------------------------- http://pushingcows.se Gula Nallen |
Gazrog2 | 19:22 - 21:a Maj 2006 | Post #3 | |
Medlem Inlägg: 71 Skicka PM |
Jag gjorde den ändringen men jag får fortfarande meddelandet : Functions.cc: In function EUR~int LoadMap(std::string)EUR(TM): Functions.cc:9: error: variable EUR~std::ifstream data_fileEUR(TM) has initializer but incomplete type Functions.cc:13: error: invalid conversion from EUR~int (*)[1250]EUR(TM) to EUR~intEUR(TM) ------------------------- Ingen signatur! |
Nissebosselasse | 19:59 - 21:a Maj 2006 | Post #4 | |
Medlem Inlägg: 490 Skicka PM |
Du returnerar en pekare-till-int (dvs en array) i funktionen LoadMap, men i funktionsdeklarationen har du skrivit att den returnerar en vanlig int (int LoadMap...). En variant jag tänkte på är att använda std::vector istället för vanliga arrays:
Följande grejor kan vara bra att läsa på om:
Hoppas jag inte förvirrade det än mer nu! ------------------------- http://pushingcows.se Gula Nallen |
Sotai | 14:39 - 24:e Maj 2006 | Post #5 | |
Medlem Inlägg: 5 Skicka PM |
Hejsan. Jag skrev om din funktion så att den (bör, har inte testat) fungera. Tills du lär dig förstå Nisses.
En array och en pekare är egentligen samma sak, bara att en array har ett tilldelat utrymme till sig i minnet. Din funktion skulle kunna skrivas om till:
Eller något i den stilen. Bara så du förstår likheterna. =) Lycka till med ditt spel =) ------------------------- Ingen signatur! Senast redigerad 14:41 - 24:e Maj 2006 |
Nissebosselasse | 15:35 - 24:e Maj 2006 | Post #6 | |
Medlem Inlägg: 490 Skicka PM |
Problemet med den sista är väl att pekaren som returneras pekar på en lokal variabel, vilket ju inte är så smart (den existerar ju inte utanför funktionens kropp, såvida den inte görs static). ------------------------- http://pushingcows.se Gula Nallen |
Sidor: 1
Forum huvudsida -> Programmering -> C++ probs
Du får inte posta i den här tråden | Till toppen
Datum
2024-05-07 21:50
Vecka: 19
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.