Was ist Falsch warum geht es nicht
-
Hallo Leute ich versuche gerade ein programm zu erstellen allerdings gibt es mir immer nur Fehler zurück..
Hoffe ihr könnt mir helfen hier mal der Source Code:
#include <iostream> #include <windows.h> #include <ostream> #include <sstream> using namespace std; void loading() { unsigned sleep_time = 500; cout << "Loading [..........]"; Sleep (sleep_time); system("cls"); cout << "Loading [*.........]"; Sleep (sleep_time); system("cls"); cout << "Loading [**........]"; Sleep (sleep_time); system("cls"); cout << "Loading [***.......]"; Sleep (sleep_time); system("cls"); cout << "Loading [****......]"; Sleep (sleep_time); system("cls"); cout << "Loading [*****.....]"; Sleep (sleep_time); system("cls"); cout << "Loading [******....]"; Sleep (sleep_time); system("cls"); cout << "Loading [*******...]"; Sleep (sleep_time); system("cls"); cout << "Loading [********..]"; Sleep (sleep_time); system("cls"); cout << "Loading [*********.]"; Sleep (sleep_time); system("cls"); cout << "Loading [**********]"; Sleep (sleep_time); system("cls"); } void end() { unsigned sleep_time = 500; cout << "Ending [..........]"; Sleep (sleep_time); system("cls"); cout << "Ending [.........*]"; Sleep (sleep_time); system("cls"); cout << "Ending [........**]"; Sleep (sleep_time); system("cls"); cout << "Ending [.......***]"; Sleep (sleep_time); system("cls"); cout << "Ending [......****]"; Sleep (sleep_time); system("cls"); cout << "Ending [.....*****]"; Sleep (sleep_time); system("cls"); cout << "Ending [....******]"; Sleep (sleep_time); system("cls"); cout << "Ending [...*******]"; Sleep (sleep_time); system("cls"); cout << "Ending [..********]"; Sleep (sleep_time); system("cls"); cout << "Ending [.*********]"; Sleep (sleep_time); system("cls"); cout << "Ending [**********]"; Sleep (sleep_time); system("cls"); } void edition() { cout << "Geben Sie das Editionskuerzel ein:"; stringstream e; string edi; cin >> edi; e << "http://etcg.de/yugioh/karten-suchmaschine/yugioh_set-details.php?set=" << edi << "&la=de"; if (edi == "h") { system ("notepad help.txt"); } else { ShellExecute (NULL,"open","firefox",e.str().c_str(),NULL,SW_SHOWNORMAL); } } void karte() { cout << "Geben Sie das Editionskuerzel ein:"; stringstream k; string edi; cin >> edi; cout << "Geben Sie die Kartennummer ein:"; string num; cin >> num; k << "http://etcg.de/yugioh/karten-suchmaschine/yugioh_card-details.php?set=" << edi << "&no=" << num <<"&la=de"; ShellExecute (NULL,"open","firefox",k.str().c_str(),NULL,SW_SHOWNORMAL); } void deck() { void deckname() { cout << "Geben Sie den Decknamen ein:"; stringstream d; string deck; cin >> deck; d << "http://etcg.de/yugioh/deck-suchmaschine/yugioh_deck-search.php?deckname=" << deck << "&besitzer=&format=&deckart="; ShellExecute (NULL,"open","firefox",d.str().c_str(),NULL,SW_SHOWNORMAL); } } void besitzer() { cout << "Geben Sie den Besitzer ein:"; stringstream b; string besitzer; cin >> besitzer; b << "http://etcg.de/yugioh/deck-suchmaschine/yugioh_deck-search.php?deckname=&besitzer=" << besitzer << "&format=&deckart="; ShellExecute (NULL,"open","firefox",b.str().c_str(),NULL,SW_SHOWNORMAL); } void format() { cout << "Geben Sie das Format ein:"; stringstream f; string format; cin >> format; f << "http://etcg.de/yugioh/deck-suchmaschine/yugioh_deck-search.php?deckname=&besitzer=&format=" << format << "&deckart="; ShellExecute (NULL,"open","firefox",f.str().c_str(),NULL,SW_SHOWNORMAL); } int main() { cout << "[1] Deckname eingeben" << endl; cout << "[2] Besitzer eigeben" << endl; cout << "[3] Format eingeben" << endl; cout << "Was moecheten Sie tun?:"; stringstream t; string was; cin >> was; if (was == "1") { deckname(); } if (was == "2") { besitzer(); } if (was == "3") { format(); } } void menu() { cout << "[1]Edition aufrufen" << endl; cout << "[2]Karte aufrufen" << endl; cout << "[3]Deck suchen" << endl; cout << "[4]eTCG aufrufen" << endl; cout << "[5]eTCG - Messageboard aufrufen" << endl; cout << "[6]Programm beenden" << endl; } int main() { loading(); menu(); cout << "Was moechten Sie tun?:"; stringstream a; string aktion; cin >> aktion; if (aktion == "1") { edition(); } if (aktion == "2") { karte(); } if (aktion == "3") { deck(); } if (aktion == "4") { url << "http://etcg.de/"; ShellExecute (NULL,"open","firefox",url.str().c_str,NULL,SW_SHOWNORMAL); } if (aktion == "5") { url << "http://etcg.de/forum"; ShellExecute (NULL,"open","firefox",url.str().c_str,NULL,SW_SHOWNORMAL); } if (aktion == "6"} { end(); } }1>------ Neues Erstellen gestartet: Projekt: ETCG, Konfiguration: Release Win32 ------ 1>Die Zwischen- und Ausgabedateien für das Projekt "ETCG" mit der Konfiguration "Release|Win32" werden gelöscht. 1>Kompilieren... 1>main.cpp 1>.\main.cpp(112) : error C2601: 'deckname': Lokale Funktionsdefinitionen sind unzulässig 1> .\main.cpp(110): Diese Zeile enthält eine '{', die keine Entsprechung hat 1>.\main.cpp(153) : error C3861: "deckname": Bezeichner wurde nicht gefunden. 1>.\main.cpp(175) : error C2084: Funktion 'int main(void)' hat bereits einen Funktionsrumpf 1> .\main.cpp(142): Siehe vorherige Definition von 'main' 1>.\main.cpp(196) : error C2065: 'url': nichtdeklarierter Bezeichner 1>.\main.cpp(197) : error C2065: 'url': nichtdeklarierter Bezeichner 1>.\main.cpp(197) : error C2228: Links von ".str" muss sich eine Klasse/Struktur/Union befinden. 1> Typ ist ''unknown-type'' 1>.\main.cpp(197) : error C2228: Links von ".c_str" muss sich eine Klasse/Struktur/Union befinden. 1>.\main.cpp(201) : error C2065: 'url': nichtdeklarierter Bezeichner 1>.\main.cpp(202) : error C2065: 'url': nichtdeklarierter Bezeichner 1>.\main.cpp(202) : error C2228: Links von ".str" muss sich eine Klasse/Struktur/Union befinden. 1> Typ ist ''unknown-type'' 1>.\main.cpp(202) : error C2228: Links von ".c_str" muss sich eine Klasse/Struktur/Union befinden. 1>.\main.cpp(204) : error C2143: Syntaxfehler: Es fehlt ')' vor '}' 1>.\main.cpp(204) : error C2143: Syntaxfehler: Es fehlt ';' vor '}' 1>.\main.cpp(204) : warning C4390: ';': Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt? 1>.\main.cpp(205) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil? 1>.\main.cpp(208) : error C2059: Syntaxfehler: '}' 1>.\main.cpp(208) : error C2143: Syntaxfehler: Es fehlt ';' vor '}' 1>.\main.cpp(208) : error C2059: Syntaxfehler: '}' 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\´?\Eigene Dateien\Visual Studio 2008\Projects\ETCG\ETCG\Release\BuildLog.htm" gespeichert. 1>ETCG - 17 Fehler, 1 Warnung(en) ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
-
Whow, was für eine Fehlerbeschreibung. Variablendeklarationen wären vielleicht mal ein Anfang.
-
sind doch drin!! "void" etc oder wie soll ichs sonst machen
-
Irgendwie geistern bei dir einige unsinnige klammern rum, und es gibt (wie der Compiler korrekt sagt) keine lokalen Funktionen in C++. So was geht einfach nicht:
void hueh() { void hott() { cout << "Galopppelgaloppelgaloppel" << endl; } }
-
könnte mir jemand den code pls richtig stellen,da ich nicht wirklich durchblicke
-
Öha, da ist ja noch mehr im Argen..
Du hast ja auch 2 * eine main! Du solltest dir noch mal die Grundlagen zu Gemüte führen...
Korrigieren wird dir den Code so wohl niemand...
-
schau dir deck und deckname an.
-
deine main könnte auch einen wert zurückgeben.
du kannst durch die ganzen void-funktionen nie sinnvoll überprüfen welche funktionen was gemacht haben... die behandlung in der funktion find ich immer nicht so gut...und bevor man kein fehlerfreies program hat, lässt man solche loading und end-funktionen raus...
wobei ich mich eigentlich für solche funktionen schämen würde ^^ich habe mit einfachen konsolenprogrammen angefangen, ohne besondere zielstellung, und dass würde ich jedem anderen auch raten. aus der kalten zu versuchen ein yu-gi-oh-programm zu schreiben (sinn sei dahingestellt) muss irgendwie gegen den baum gehen...
damit lernt man nix über die grundlagen, welche man benötigt sondern versucht irgendwie das gewünschte hinzufrickeln... mit gewissen grundlagen ausgestattet, kennt man dann auch andere wege ein solches "programm" zu schreiben.MfG
Bara
-
Schau dir die Fehlermeldungen an, die sind alle selbsterklärend.
Funktion 'int main(void)' hat bereits einen Funktionsrumpf -> main() ist doppelt, darf nicht sein!
'url': nichtdeklarierter Bezeichner -> Der Compiler weis nicht was 'url' ist.
etc...Compilier dein Programm häufiger, am besten nach 2-3 neuen Zeilen. Damit du nur einzelne Fehler bekommst, weis wo sie sind und dann direkt lösen kannst und nicht gleich erschlagen wirst.
Und weil ich die Loading/Ending Funktionen so da stehend nicht ertragen kann, auch wenn sie keine Syntaxfehler enthalten:
//Anzeige eines verlogenden Ladebalkens //Description= Name des Ladebalkens, standard "Loading" //sleep_time= Zeit in ms die für jeden Ladeschritt benötigt wird, standard 500 ms //LoadingPhaseCount= Anzahl der Ladeschritte, standard 10 void Loading(const char* Description = "Loading", unsigned int sleep_time=500, unsigned int LoadingPhaseCount=10) { for(unsigned int LoadingPhase=0; LoadingPhase<LoadingPhaseCount; LoadingPhase++) { cout << Description <<" ["; for(unsigned int Stars=LoadingPhaseCount-LoadingPhase; Stars<LoadingPhaseCount; Stars++) cout <<"*"; for(unsigned int Points=LoadingPhase; Points<LoadingPhaseCount; Points++) cout <<"."; cout << "]"; Sleep(sleep_time); system("cls"); } }EDIT: Tippfehler korrigiert, Funktion allgemeiner geschrieben.
Gruß
JaykopX