Anfänger(!): void main()?
-
Hallo, ich versuche nach einem C++- Buch mein erstes Programm zu schreiben, es funktioniert aber nicht. Der Code sieht so aus:
#include "aufgabe_1.h" #include "iostream" int man() { std::cout << "Hallo Welt!"; }
Ich kriege immer den Fehler "function main must return a value". Ich benutze MS Visual C++ 6.
Danke schon mal für Hilfe,
Marco
-
Schreib return 0; ans Ende der main.
Ausserdem werden die library-header wie iostream mit <> eingebunden. Also #include <iostream>
-
#include <iostream> int main() { std::cout << "Hallo Welt!"; std::cin.clear(); std::cin.ignore( std::cin.rdbuf()->in_avail() ); std::cin.get(); return 0; }
-
Danke, jetz kriege ich aber folgendes:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/aufgabe_1.exe : fatal error LNK1120: 1 unresolved externals
*Der Code sieht jetzt so aus:
#include "aufgabe_1.h" #include <iostream> int man() { std::cout << "Hallo Welt!"; return 0; }
-
Du solltest auch main schreiben und nicht man...
-
Ups, danke
-
Hi, wir wollen uns doch an den Standard halten, oder?
#include <iostream> using namespace std; int main(int argv, char *argc[]) { cout << "Hallo Welt!" << endl; return 0; }
-
Ja, Standard ist immer gut
Aber mal eine andere Frage´; Ich will (bzw. muss, "aufgabe_1.h" legt ja schon nahe, dass ich das nicht freiwillig mache) so eine Art Menü machen, aber sobald ich eine Auswahl mache, gebe ich den Text aus, dann kommt return 0; und alles ist vorbei. Wie kriege ich dass denn hin, dass ich was auswähle, function soundso ausführe und auf die nächste Eingabe warte. Beendet werden soll dann nur bei '5 Beenden'. Der Code sieht so aus:
#include "aufgabe_1.h" #include <iostream> #include <string> using namespace std; int main(int argv, char* argc[]) { string selection; string return_value; int action; cout << "Bitte waehlen:\n1 Kunden einfuegen\n2 Kunden loeschen\n3 einzelnen Kunden anzeigen\n4 alle Kunden anzeigen\n5 Beenden\n\nAuswahl (1-5): "; cin >> selection; if (selection == "1") { return_value = "Kunden einfuegen"; } else if (selection == "2") { return_value = "Kunden loeschen"; } else if (selection == "3") { return_value = "einzelnen Kunden anzeigen"; } else if (selection == "4") { return_value = "alle Kunden anzeigen"; } else if (selection == "5") { return_value = "Ciao"; } else { return_value = "ungueltige Eingabe"; } cout << return_value; return 0; }
Danke schon mal, Marco
[ Dieser Beitrag wurde am 02.05.2003 um 22:14 Uhr von marcoow editiert. ]
-
Learning by doing
kleiner Tipp:
while(true){} und exit(true);
-
ich hab schon was rausgefunden:
#include "aufgabe_1.h" #include <iostream> #include <string> using namespace std; void print_menu() { string selection; string return_value; cout << "Bitte waehlen:\n1 Kunden einfuegen\n2 Kunden loeschen\n3 einzelnen Kunden anzeigen\n4 alle Kunden anzeigen\n5 Beenden\n\nAuswahl (1-5): "; cin >> selection; if (selection == "1") { return_value = "Kunden einfuegen\n\n"; } else if (selection == "2") { return_value = "Kunden loeschen\n\n"; } else if (selection == "3") { return_value = "einzelnen Kunden anzeigen\n\n"; } else if (selection == "4") { return_value = "alle Kunden anzeigen\n\n"; } else if (selection == "5") { return_value = "Ende..."; exit(0); } else { return_value = "ungueltige Eingabe\n\n"; } cout << return_value; print_menu(); } int main(int argv, char* argc[]) { print_menu(); return 0; }
-
Original erstellt von <TheCoder>:
**Hi, wir wollen uns doch an den Standard halten, oder?int main(int argv, char *argc[]) ```**
Ja, darum können wir auch "int main()" verwenden wenn wir keine übergebenen Parameter ermitteln müssen.
marcoow: Das ist so eher überflüssig, mach lieber sowas:
int sel; std::cin >> sel; switch (sel) { case 0: doSomething(); break; case 1: doSomethingElse(); break; default: break; }
[ Dieser Beitrag wurde am 03.05.2003 um 18:20 Uhr von nman editiert. ]
-
Hi
mit der endlos schleife kann man das aus so lösen ,wenn man die Auswahl in eine Funktion packt die nur dann true zurückgibt wenn , beendet werden soll, sonst immer null.
while(!print_menu());