fehlermeldung
-
Hallo,
ich nutze heute zum erstenmal DEV-CPP und habe auch gleich die erste
Warnung für folgenden Programmcode bekommen:#include <iostream.h> #include <stdio.h> int main(){ int meink; cout << "k-Wert eingeben: "; cin >> meink; // scanf("%d", &meink); cout << "eingegeben: "; cout << meink; system("PAUSE"); }Warnung:
1 C:\Dev-Cpp\include\c++\3.3.1\backward\iostream.h:31, from C:\Dokumente und Einstellungen\computer\Desktop\hi.cpp In file included from C:/Dev-Cpp/include/c++/3.3.1/backward/iostream.h:31, from C:/Dokumente und Einstellungen/computer/Desktop/hi.cpp 2 C:\Dev-Cpp\include\c++\3.3.1\backward\backward_warning.h:32 #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.ich hab nur etwas verstanden, das was mit dem include nicht stimmt.
Aber der Befehl #include <iostream.h> stimmt doch???gruß
-
Ne, bei den Standard-Headern lässt man das .h weg

-
Das ".h" solltest du für schönes C++ weglassen, dafür musst du dann aber auch immer
std::cout,
std::cin,... schreiben oder unter den include-zeilen
using namespace std;
-
Die beiden Header, die du dort eingebunden hast, sind veraltet - gültig sind <iostream> und <cstdio> (wobei <stdio.h> auch noch im Ansi-Standard enthalten ist - wegen Kompatibilität mit C).
(und ehe du über den nächsten Fehler stolperst - alle Standard-Funktionen und -Klassen liegen im Namensraum std, also mußt du sie entweder mit "std::" kennzeichnen oder mit einem "using namespace std;" global bekannt machen)
-
Dankeschön. Hab wohl ein altes Buch

-
Und std::system("pause") is auch doof

#include <iostream> int main() { std::cout << "k-Wert: " << std::flush; int my_var = 0; std::cin >> my_var; std::cout << "k wurde mit " << my_var << " belegt!" << std::endl; std::cin.get(); }... wobei das nur geht solange cin nicht das failbit gesetzt hat. Dann musst du das erst wegräumen und den Inhalt vom cin-Buffer löschen.
-
(D)Evil schrieb:
std::cout << "k-Wert: " << std::flush;Das flush hier ist aber unnötig - unter Normalbedingungen sind cin und cout sowieso miteinander gekoppelt, so daß jeder Zugriff auf cin als erste Amtshandlung den cout-Puffer flusht.
-
Jaja
Das ist mir bekannt ^^ (Und wurde auch schon mehrmals darauf hingewiesen ...) ... find es so aber ein wenig klarer was da abgehen soll ^^