Jede Menge Probleme mit Dev-C++

  • Themenstarter Themenstarter Nikic_
  • Beginndatum Beginndatum
N

Nikic_

Hallo,

ich bin Anfänger mit C++. Erstmal dachte ich mir ich kaufe mir ein Buch. Habe dann von Markt & Technik "Jetzt lerne ich C++" gefunden. Dann brauchte ich einen Compiler und einen Editor daher bin ich auf Dev-C++ gestoßen. Nun versuche seit etwa 2 Stunden das Programm Hello World zu kompilieren. Es kommen aber immer wieder irgendwelche Fehlermeldungen:

C:/DEV-CPP/include/c++/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.

Kann mir von euch jemand erklären, was dieses zu bedeuten hat?
Habe aus meiner Umschulung (wir hatten ungefähr 14 Tage das Vergnügen mit C++) einige Dateien, die ich ebenfalls versuchte zu kompilieren doch da kamen noch mehr Fehlermeldungen. Am Meisten macht mir dieses <conio.h> und clrscr() Ärger. Gibt es diese Ausdrücke vielleicht nicht (mehr)?

Bitte helft mir

Danke
Gruß
Nicole
 
Was du da hast, ist ja nur eine Warnung, und kein Fehler. Es werden bei dir einige veraltete Dateien included, weswegen du allerdings nicht nervös werden musst. <strstream.h> ist ein alter Header, und die neuen Versionen befinden sich in <sstream> (im Namespace std).

Wenn du dein Hello-World-Programm mal posten würdest, wäre es einfacher, zu erklären, was los ist.
 
Huhuu,

danke für die Antwort.
Dann bin ich schonmal halbwegs beruhigt. Aber was bedeutet " <sstream> (im Namespace std)" wo find ich das denn bzw. wie muss ich das einbinden? Ich dachte das Buch aus dem Jahr 2004 sollte die neuen Sachen eigentlich können. Ist das Buch vielleicht doch nich so gut?

Da ist mein Hello World:

#include <iostream.h>
int main()
{
cout << "Hallo Welt!\n";
return 0;
}

Danke
Gruß
Nicole
 
Dein HelloWorld sieht gut aus. Fehler sind keine drin. Gibt es denn "Hallo Welt!" aus? Also, funktioniert es?

Dein Buch ist sicherlich nicht veraltet, nur weil es ältere Versionen der Headerdateien verwendet. Sie sind zwar nicht mehr Teil des C++-Standards, aber werden sicher noch einige Zeit verwendet werden.
 
Jo, mittlerweile funktionert es auch *freu*.

Aber irgendwie kommen die "neuen" C++ Proggis nicht mit mkeinen alten Dateien von Visual C++ klar. In der Umschulung wurden Begriffe wie z.B. Random, Randomize und clrscr() verwendet und bei diesen Begriffen bekomme ich Fehlermeldungen. clrscr hab ich mittlerweile rausgefunden, aber mit Random/ize find ich keine Alternative.
Schau mal:

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
int main()
{
int zahl1,zahl2,wertebereich,gemischt,auswahl,ergebnis;
randomize();
cout<< "Bitte geben Sie den Wertebreich an: ";
cin>> wertebereich;
random(wertebereich);
zahl1 = random(wertebereich);
zahl2 = random(wertebereich);
gemischt = random(4);

cout<<"************************************\n";
cout<<"* Bitte die Rechenart auswählen! *\n";
cout<<"* *\n";
cout<<"* Addition (+) + *\n";
cout<<"* *\n";
cout<<"* Subtraktion (-) - *\n";
cout<<"* *\n";
cout<<"* Multiplikation (*) *\n";
cout<<"* *\n";
cout<<"* Division (/) / *\n";
cout<<"* *\n";
cout<<"* Gemischt (+,-,*,/) g *\n";
cout<<"* *\n";
cout<<"************************************\n";
cout<<"* Auswahl: ";
cin>> auswahl;

cout<<"Zahl1: "<<zahl1<<"\n";
cout<<"Operator: "<<auswahl<<"\n";
cout<<"Zahl2: "<<zahl2<<"\n";


switch(auswahl)
{
case('+'):
do
{
zahl1 = random(wertebereich);
zahl2 = random(wertebereich);
}
while (zahl1 + zahl2 > wertebereich);
ergebnis = zahl1 + zahl2;
case('-'):
do
{
zahl1 = random(wertebereich);
zahl2 = random(wertebereich);
}
while (zahl1 - zahl2 > wertebereich);
do
{
zahl1 = random(wertebereich);
zahl2 = random(wertebereich);
}
while (zahl1 - zahl2 < 0);
ergebnis = zahl1 - zahl2;
case('*'):
do
{
zahl1 = random(wertebereich);
zahl2 = random(wertebereich);
}
while (zahl1 * zahl2 > wertebereich);
ergebnis = zahl1 * zahl2;
case('/'):
do
{
do
{
zahl1 = random(wertebereich);
zahl2 = random(wertebereich);
}
while (zahl1 / zahl2 > wertebereich);
do
{
zahl2 = random(wertebereich);
}
while (zahl2 == 0);
do
{
zahl1 = random(wertebereich);
}
while (zahl1 > wertebereich);
do
{
zahl2 = random(wertebereich);
}
while (zahl2 > wertebereich);
ergebnis = zahl1 * zahl2
}
while (ergebnis > wertebereich);
zahl1 = ergebnis;
ergebnis = zahl1 / zahl2;
}
}

Frag mich bloß nicht um was es bei diesem Proggi geht. iwe geschrieben hatten wir etwa 14 Tage (mit Unterbrechung) das Vergnügen mit C++ und ich habe wirklich keine Ahnung was dort gemacht wurde.

Das ist die Fehlermeldung dazu:

C:/DEV-CPP/include/c++/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.
D:/EigeneDateienD/programmieren/c++/mathe-lernproggi/mathe.cpp: In function
`int main()':
D:/EigeneDateienD/programmieren/c++/mathe-lernproggi/mathe.cpp:22: `randomize'
undeclared (first use this function)

D:/EigeneDateienD/programmieren/c++/mathe-lernproggi/mathe.cpp:22: (Each
undeclared identifier is reported only once for each function it appears in.)
D:/EigeneDateienD/programmieren/c++/mathe-lernproggi/mathe.cpp:28: `random'

undeclared (first use this function)

D:/EigeneDateienD/programmieren/c++/mathe-lernproggi/mathe.cpp:120: parse error
before `}' token

Ausführung beendet

Hoffe, Du kannst mir da auch weiterhelfen. Alles Andere mittlwerweile, nur das nicht.

Vielen Dank im Voraus

Gruß
Nicole
 
randomize() und random() gibt es in dieser Form in C++ nicht. Du kannst statt random() rand() verwenden. Um einen bestimmten Wertebereich zu erhalten, machst du
Code:
zahl1 = rand() * wertebereich/(RAND_MAX+1);
Statt randomize() nimmst du
Code:
#include <time.h>
...
srand( (unsigned)time( NULL ) );

Und beim Posten von Code nicht die Codetags vergessen!
 

Anhänge

  • codetags.gif
    codetags.gif
    7,1 KB · Aufrufe: 129
Supi, vielen Dank für die Antworten. Es funktioniert.

Sorry, habe das mit dem Code vergessen. Kommt nich wieder vor.

Gruß
Nicole
 
Zuletzt bearbeitet von einem Moderator:
Zurück