| Autor |
Nachricht |
marcoow
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.05.2003
Beiträge: 65
|
marcoow Mitglied
21:19:00 02.05.2003 Titel: |
Anfänger(!): void main()? |
Zitieren |
Hallo, ich versuche nach einem C++- Buch mein erstes Programm zu schreiben, es funktioniert aber nicht. Der Code sieht so aus:
| C++: | 1 2 3 4 5 6 7 8 | #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 |
|
|
|
 |
DrGreenthumb
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.10.2001
Beiträge: 4635
|
DrGreenthumb Mitglied
21:21:00 02.05.2003 Titel: |
|
Zitieren |
Schreib return 0; ans Ende der main.
Ausserdem werden die library-header wie iostream mit <> eingebunden. Also #include <iostream> |
_________________ main(k){for(k=0;k<125;++k)putchar((k+1)%25? ("[k<qFUF>XB]X=9V=hm9FC"[k/6]-52)&1<<k%6?64:32:10);}
|
|
 |
SBB
Unregistrierter
|
SBB Unregistrierter
21:23:00 02.05.2003 Titel: |
|
Zitieren |
| C++: | 1 2 3 4 5 6 7 8 9 10 | #include <iostream>
int main()
{
std::cout << "Hallo Welt!";
std::cin.clear();
std::cin.ignore( std::cin.rdbuf()->in_avail() );
std::cin.get();
return 0;
} | | |
|
|
|
 |
marcoow
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.05.2003
Beiträge: 65
|
marcoow Mitglied
21:24:00 02.05.2003 Titel: |
|
Zitieren |
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:
| C++: | 1 2 3 4 5 6 7 8 9 | #include "aufgabe_1.h"
#include <iostream>
int man() {
std::cout << "Hallo Welt!";
return 0;
} | | |
|
|
|
 |
KPC
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.03.2002
Beiträge: 951
|
KPC Mitglied
21:30:00 02.05.2003 Titel: |
|
Zitieren |
Du solltest auch main schreiben und nicht man... |
|
|
|
 |
marcoow
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.05.2003
Beiträge: 65
|
marcoow Mitglied
21:32:00 02.05.2003 Titel: |
|
Zitieren |
Ups, danke |
|
|
|
 |
TheCoder
Unregistrierter
|
TheCoder Unregistrierter
21:55:00 02.05.2003 Titel: |
|
Zitieren |
|
 |
marcoow
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.05.2003
Beiträge: 65
|
marcoow Mitglied
22:13:00 02.05.2003 Titel: |
|
Zitieren |
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:
| C++: | 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 | #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. ] |
|
|
|
 |
TheCoder
Unregistrierter
|
TheCoder Unregistrierter
22:59:00 02.05.2003 Titel: |
|
Zitieren |
Learning by doing ;)
kleiner Tipp:
while(true){} und exit(true);
;) |
|
|
|
 |
marcoow
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.05.2003
Beiträge: 65
|
marcoow Mitglied
23:13:00 02.05.2003 Titel: |
|
Zitieren |
ich hab schon was rausgefunden:
| C++: | 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 | #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;
} | | |
|
|
|
 |
nman
Moderator
Benutzerprofil
Anmeldungsdatum: 19.02.2002
Beiträge: 13912
|
nman Moderator
18:18:00 03.05.2003 Titel: |
|
Zitieren |
| Zitat: | Original erstellt von <TheCoder>:
Hi, wir wollen uns doch an den Standard halten, oder?
| C++: | | 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:
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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. ] |
_________________ …but tuesday's just as bad.
|
|
 |
Flow_cplus
Mitglied
Benutzerprofil
Anmeldungsdatum: 06.11.2002
Beiträge: 279
|
Flow_cplus Mitglied
14:04:00 04.05.2003 Titel: |
|
Zitieren |
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.
| C++: | | while(!print_menu()); | | |
|
|
|
 |