Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Hilfe bei "einem Rechner"

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.08.2014, 21:32 Uhr
Holzkopf



Guten Abend,
Ich habe vor ein paar Stunden angefangen mich mit C++ zu beschäftigen und komme hier nicht weiter.


C++:
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
int z1;
int z2;

cout << "Addition:" << endl;
Sleep (1000);
cout << "geben sie die erste Zahl ein," << endl;
Sleep (800);
cout << "druecken sie die Eingabetaste" << endl;
Sleep (800);
cout << "und dann geben sie die zweite Zahl ein." <<  endl;
cin >> z1;
if (z1 < 999999)(z1 > -999999);
{
cout << "+" << endl;
cin >> z2;
}
if (z2 < 999999)(z2 > -999999);
{
cout << "Das Ergebnis lautet:" << endl;
cout << z1+z2 << endl;    
system ("PAUSE");
}
cout << "FEHLER! Falsche Eingabe" << endl;
system ("PAUSE");
return 0;
}



Mein Problem besteht darin das ich nicht weiß wie ich verhindern kann, das die Fehlermeldung angezeigt wird, auch wenn korrekte Zahlen eingegeben wurden.

Bestimmt gibt es eine ganz simple Lösung dafür, aber ich bin halt gerade noch blutiger Anfänger:/

Danke im Vorraus


Bearbeitung von FloSoft:

Codetags eingefügt


Dieser Post wurde am 23.08.2014 um 21:43 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.08.2014, 21:49 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,

also ich sehe ein paar Probleme (von dem system("PAUSE") mal abgesehen ...):


C++:
if (z1 < 999999)(z1 > -999999);



ergibt keinen sinn - ich vermute du meinst ein "UND"


C++:
if ( (z1 < 999999) && (z1 > -999999) )


(ohne Strichpunkt am Ende, da du ja den Block { ... } ausführen willst wenn die Bedingung zutrifft!)

genauso bei


C++:
if (z2 < 999999)(z2 > -999999);



muss es


C++:
if ( (z2 < 999999) && (z2 > -999999) )



lauten.

So zu deiner Frage: Naja - du musst deine if's passend zusammensetzen, so das deine Fehlermeldung nur bei einem Fehler auftritt.

in deinem Fall evtl einfachheitshalber so:


C++:
// ...

bool error = true; // das zeigt uns dann später an ob ein Fehler vorlag

if ( (z1 < 999999) && (z1 > -999999) )
{
    cout << "+" << endl;
    cin >> z2;

    // das hier hier rein, bei Fehler in z1 musst du z2 nicht einlesen
    if( (z2 < 999999) && (z2 > -999999) )
    {
        cout << "Das Ergebnis lautet:" << endl;
        cout << z1+z2 << endl;    
        system ("PAUSE");

        error = false; // keinen Fehler mehr ausgeben
    }
}

if(error)
{
    cout << "FEHLER! Falsche Eingabe" << endl;
    system ("PAUSE");
}

// ....



Wichtig: Achte auf die Einrückung, das machts einfacher. Wenn du eine halbwegs aktuelle IDE benutzt (Visual Studio, Eclipse, was auch immer...) gibt es eine Codeformatierungsfunktion, solltest du ab und zu benutzen ;-)
--
class God : public ChuckNorris { };

Dieser Post wurde am 23.08.2014 um 21:50 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.08.2014, 21:51 Uhr
Holzkopf



Danke für die schnelle Antwort ich werde dann mal anfangen die neuen Informationen zu verarbeiten
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.08.2014, 22:18 Uhr
Holzkopf



vielleicht noch ein Frage mehr

So siehts jetzt aus:


C++:
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
int z1;
int z2;
int abbrechen = 0;
     cout << "Addition:" << endl;

     Sleep (1000);

     cout << "geben sie die erste Zahl ein," << endl;
    
     Sleep (800);

     cout << "druecken sie die Eingabetaste" << endl;

     Sleep (800);

     cout << "und dann geben sie die zweite Zahl ein." <<  endl;

         cin >> z1;

         bool error = true;

         if ( (z1 < 999999) && (z1 > -999999) )
         {
cout << "+" << endl;
         cin >> z2;

         if( (z2 < 999999) && (z2 > -999999) )
         {

cout << "Das Ergebnis lautet:" << endl;
      
cout << z1+z2 << endl;    
        
system ("PAUSE");

        error = false;
}
}

if(error)
{
    cout << "FEHLER! Falsche Eingabe" << endl;
    system ("PAUSE");
}
return 0;
}


wäre es jetzt möglich das Programm immer wieder neu zu starten und nur durch einen bestimmten Befehl abzubrechen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.08.2014, 14:15 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja natürlich, dafür gibt es schleifen.

z.b in deinem Fall vermutlich:


C++:
char weiter;
do
{
   // ...

   cout << "Weitermachen ? (y eingeben)" << endl;
   cin >> weiter;
} while(weiter == 'y');


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: