Anfänger Probleme :/
-
Hi Leute!
Habe folgendes Programm geschrieben >>#include <iostream.h> void main() { // Dies ist das Hello World Programm cout<<"Hello World!"<<endl; };
und bekomme diese Meldung vom Compiler >>
uilding Makefile: "C:\Dev-Cpp\Makefile.win" Führt make... aus make.exe -f "C:\Dev-Cpp\Makefile.win" all g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include" In file included from C:/Dev-Cpp/include/c++/3.3.1/backward/iostream.h:31, from main.cpp:1: C:/Dev-Cpp/include/c++/3.3.1/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated. main.cpp:3: error: `main' must return `int' make.exe: *** [main.o] Error 1 Ausführung beendet
Worin besteht der Fehler? Schonmal Danke für die Hilfe!!!
mfg. sTrykA
-
Mach mal das Semikolon ( ; ) am Schluss weg. Glaube zwar nicht dass es damit zusammenhängt. Dann kannst du noch das probieren:
int main()
statt
void main()
und einfach noch ein
return 0;
auf der Zeile nach dem "cout" Befehl.
-
Noch deutlicher und aussagekräftiger kann sich dein Compiler nun wirklich nicht melden. Er meldet genau das was gemäss Standard (ISO/IEC 14882) nicht "richtig" ist.
1.) Verwende <iostream> statt <iostream.h>
2.) Verwende "int main()" statt "void main()"
-
...und füge "using namespace std;" nach dem Include ein.
-
#include <iostream> #include <string> // STL #include <conio.h> using namespace std; int main() { string s; cout << "Enter your name: "; cin >> s; cout << "Welcome to C++, " << s << endl; getch(); }
-
Würde es dir was ausmachen, Programme ohne conio.h zu posten?
-
Was würdest du denn als "Konsolenschnellschlussverhinderer" verwenden? Die komplizierte wait() ist irgendwie nichts für Anfänger, und die meisten Einsteiger verwenden MS Windows. Einfach weglassen, ist wenig kundenorientiert.
-
-
Es gibt ja auch portablere Lösungen, wo man nicht eine bestimmte Platform mit einem bestimmten Compiler für braucht. Ich finde es eher "Kundenunfreundlich" hier Dinge zu posten, die einem sehr populären Compiler nicht ohne weiteres funktionieren und nichts mit dem C++ Standard zu tun haben.
-
Erhard Henkes schrieb:
Was würdest du denn als "Konsolenschnellschlussverhinderer" verwenden? Die komplizierte wait() ist irgendwie nichts für Anfänger, und die meisten Einsteiger verwenden MS Windows. Einfach weglassen, ist wenig kundenorientiert.
wie wärs mit cin.ignore()? dann darf man zwar nich den "any key" sondern nur den "enter key" drücken. aber das is ja wurscht, oder?
#include <iostream> #include <string> // STL using namespace std; int main() { string s; cout << "Enter your name: "; cin >> s; cout << "Welcome to C++, " << s << endl; cin.ignore(); /* vielleicht auch ein zweites, ich weiss gerade nicht ob cin>>s noch ein \n im puffer stehen lässt */ }
-
Erhard Henkes schrieb:
Was würdest du denn als "Konsolenschnellschlussverhinderer" verwenden? Die komplizierte wait() ist irgendwie nichts für Anfänger, und die meisten Einsteiger verwenden MS Windows. Einfach weglassen, ist wenig kundenorientiert.
Genau diese Art von "Es läuft ja. Meinstens. Naja, manchmal - aber dann auch halbwegs richtig." ist es, die dafür gesorgt hat, dass in den meisten C++-Büchern sowohl iostream.h als auch void main auftaucht, und manchmal sogar string.h zum Einbinden der Klasse string. Wofür gibt es denn Standards, wenn sich keiner dran hält?
Ich halte es gerade bei Anfängern nicht für sinnvoll, mit schlechtem Beispiel voranzugehen, auch wenn es gelegentlich einfacher sein mag.