dev-c++ kompelier problem
-
so vorweg ich bin noch recht wenig ahnung...
ich hab folgendes problem:
in der schule in anwendungsentwicklung haben wa nen taschenrechner geschrieben der auch ohne probleme läuft. ok auf ubs-stick gepackt und zuhause dran weitergebastelt dann wollte ich das ganze ding kompeliren aber es ging nicht dev-c++ sagt mir dann das in iostream.h etwas falsch is was ja net sein kann.
(borland 5 sagt nur linker fataler fehler)
dann hab ich das ganze mal auf anderen rechner getestet und dann ging es ohne probleme. es lässt sich unter linuk winnt win2k ohne probs kompeliren nur auf meinem winxp nicht woran kann das liegen oder wie bekomm ich das zum laufen?mfg
Selgald
-
Also da brauchts schon noch ein bischen mehr Infos, um aus dem Problem schlau zu werden. Poste z.B. mal die Fehlermeldungen, die Dein Compiler auswirft! Und je nachdem wäre ein bischen Programm-Code auch nicht schlecht (wenn's nicht allzu lang ist...)
-
iostream.h ist veraltet.
<iostream> verwenden.
teste mal das hier:#include <iostream> #include <conio.h> using namespace std; int main() { // getch(); }
-
// rechner.cpp
// Programm zur Durchfuehrung
// einfacher Berechnungen
// D.Schroeder#include <iostream.h>
#include <math.h>double zahl_eingeben()
{
double zahl;
cin>>zahl;
return zahl;
}int main()
//Variablen-Deklaration
char zeichen;
double eingabewert=0;//Ausgabe Kopfzeile
cout<<"Operationen: = + - * / q w l b \n";
cout<<"-------------------------------\n";
cout<<" Eingabe: ";
//Eingabe der ersten Zahl
cin>>eingabewert;while (cin.get(zeichen)) //Zeichen einlesen
{
switch (zeichen) //Menue-Auswahl
{
case '+': //Addition
{
eingabewert=eingabewert+zahl_eingeben();
break;
}
case '-': //Subtraktion
{
eingabewert=eingabewert-zahl_eingeben();
break;
}
case '': //Multiplikation
{
eingabewert=eingabewertzahl_eingeben();
break;
}
case '/': //Divisionif (zahl_eingeben() == 0)
{
eingabewert=eingabewert/zahl_eingeben();
break;
}
else
{
cout<<"Divisor darf nicht 0 sein";
}
case 'p': //Potenzieren
{
eingabewert=pow(eingabewert,zahl_eingeben());
break;
}
case 'q': //Quadrieren
{
eingabewert=eingabewert*eingabewert;
break;
}
case 'w': //Wurzel ziehen
{
eingabewert=sqrt(eingabewert);
break;
}
case '=': //Ergebnis
{
cout<<" Ergebnis: "<<eingabewert;
break;
}
case 'l': //Speicher loeschen
{
cout<<" Eingabe: ";
eingabewert=zahl_eingeben();
break;
}
case 'b': //Programm beenden
{
return;
}
}
}
}das is der code ja mein erster
2 E:\Dev-Cpp\include\c++\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.das ist mal der hauptfehler (denk ich) ^^
#include "backward_warning.h" << zeile 31 von der iostream.h wo der fehler ansagt
-
... schrieb:
iostream.h ist veraltet.
<iostream> verwenden.
teste mal das hier:#include <iostream> #include <conio.h> using namespace std; int main() { // getch(); }
Selgald schrieb:
2 E:\Dev-Cpp\include\c++\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.das ist mal der hauptfehler (denk ich) ^^
jopp der linker fehler kommt daher, das die iostream.h veraltet ist.
mach das wie hier nochmal beschrieben, und du darfst nicht das "using namespace std" vergessen, ansonsten wird der compiler meckern.greetings
-
gesagt getan nu sagt mir borland: Der debbuger-kernel bordbk51.dll fehlt oder is nicht regestriert.
und dev-c++ meckert jetzt:
E:\c\c1\rechner.cpp
[Warning] In function `int main()':27 E:\c\c1\rechner.cpp
redefinition of `int main()'12 E:\c\c1\rechner.cpp
`int main()' previously defined here27 E:\c\c1\rechner.cpp
parse error before `char'32 E:\c\c1\rechner.cpp
syntax error before `<<' token78 E:\c\c1\rechner.cpp
ISO C++ forbids declaration of `eingabewert' with no28 E:\c\c1\rechner.cpp
previous declaration as `double eingabewert'und noch paar andere sachen ich blick da jetzt garnet mehr durch
-
// rechner.cpp // Programm zur Durchfuehrung // einfacher Berechnungen // D.Schroeder #include <iostream> /*du hattest hier vorher "#include <iostream.h>" stehen gehabt. diese datei ist veraltet und deswegen gabs Linkerfehler*/ #include <math.h> using namespace std; /*funktionen wie cout/cin liegen im namensbereich "std" welcher in der "neuen" <iostream> definiert wurde. siehe auch ein stück weiter unten.*/ double zahl_eingeben() { double zahl; cin>>zahl; /*nimmst du das "using namespace" wieder raus wird Compiler hier meckern, das er "cin" nich kennt. Schreibst du allerdings std::cin >> zahl; wird es wieder erkannt.*/ return zahl; } int main() { /*die öffnende klammer war auch nicht vorhanden. deswegen bekammst du "27 E:\c\c1\rechner.cpp" "parse error before `char'" diese fehlermeldung*/ //Variablen-Deklaration char zeichen; double eingabewert=0; //Ausgabe Kopfzeile cout<<"Operationen: = + - * / q w l b \n"; cout<<"-------------------------------\n"; cout<<" Eingabe: "; //Eingabe der ersten Zahl cin>>eingabewert; while (cin.get(zeichen)) //Zeichen einlesen { switch (zeichen) //Menue-Auswahl { case '+': //Addition { eingabewert=eingabewert+zahl_eingeben(); break; } case '-': //Subtraktion { eingabewert=eingabewert-zahl_eingeben(); break; } case '*': //Multiplikation { eingabewert=eingabewert*zahl_eingeben(); break; } case '/': //Division if (zahl_eingeben() == 0) { eingabewert=eingabewert/zahl_eingeben(); break; } else { cout<<"Divisor darf nicht 0 sein"; break; } case 'p': //Potenzieren { eingabewert=pow(eingabewert,zahl_eingeben()); break; } case 'q': //Quadrieren { eingabewert=eingabewert*eingabewert; break; } case 'w': //Wurzel ziehen { eingabewert=sqrt(eingabewert); break; } case '=': //Ergebnis { cout<<" Ergebnis: "<<eingabewert; break; } case 'l': //Speicher loeschen { cout<<" Eingabe: "; eingabewert=zahl_eingeben(); break; } case 'b': //Programm beenden { return 0; } } } }
so ich hab deinen code mal genommen und entsprechend korrigiert, die änderungen habe ich kommentiert.
27 E:\c\c1\rechner.cpp
redefinition of `int main()'12 E:\c\c1\rechner.cpp
`int main()' previously defined herewas diese beiden fehler betrifft denke ich dass du zweimal die funktion "int main" definiert hast, sprich zweimal "int main [..]" geschrieben hast.
so sollte ich im allgemeinen bockmist erzählt haben schlagt mich peitscht mich bannt mich oder lacht mich einfach aus.
/edit: ach ja is wieder mit DevCpp gemacht, was der Borland will ka
-
hui es klappt jetzt danke
auf bald (wenn ich wieder tausend fragen hab)
-
auf bald (wenn ich wieder tausend fragen hab)