• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[C++] Einfache if-abfrage funktioniert nicht

Zeruat

Neues Mitglied
Hi alle zusammen, ich dachte mir mal ich schreibe en kleines Progi für meine Klassenkameraden, dass sie beschreibt. Jetzt hab ich ein Problem. Immer wenn ich die Dateie ausführen will, hängt sich die CMD auf -.- Andere selbstgeschriebene Programme kann ich aber ausführen ohne dass die CMD sich aufhängt... was hab ich hier falsch gemacht ?

Code:
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

 int  main(int argc, char *argv[])
{
   string name = name;

   cout <<"Name auswählen!" <<endl;
   cin >>name ;
   if (name=="Michel")
    {
      cout <<"Michel ist klein" <<endl;
    }
    else if(name=="Olli")
    { 
       cout <<"Olli ist groß" <<endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
Hallo!

Was willst Du genau ausgeben lassen, und wie ?
So sollte es mit der MessageBox funktionieren, anstatt mit "Cout", was meiner Meines Wissens nach für Konsolenanwendungen [Eingabeauffordernung] gedacht ist.
Code:
MessageBox(NULL, "DeinTestText", "DerTitel", MB_OK);

Grüße,
Malte
 
string name = name;
Hat er dir da kein Warning ausgegeben?
Ich mein hier weist du dem String den Inhalt von sich selbst zu, dass wiederspricht sich irgendwie.

Es reicht wenn du den String da oben erstmal nur deklarierst:

string name;
cout <<"Name auswählen!" <<endl;
cin >>name ;
Bin mir nicht ganz sicher aber da wird er dir wahrscheinlich nur den ersten Buchstabe/Zeichen einlesen.
Deshalb probier es mit getline:

cin.getline(name)

Das ist auch evtl. auch der Grund, warum die If Abfrage nicht geht bzw. immer fehlschlägt weil er im String name immer nur den ersten Buchstaben gespeichert hat.

Aber sonst lass dir name doch einfach mal ausgeben:

cout << name;

Dann siehst du ja, was er genau reinschreibt ;)
Oder vor der If Abfrage paar Breakpoints setzen und mitm Debugger durchsausen :)
Viel Erfolg


Edit:
Hallo!

Was willst Du genau ausgeben lassen, und wie ?
So sollte es mit der MessageBox funktionieren, anstatt mit "Cout", was meiner Meines Wissens nach für Konsolenanwendungen [Eingabeauffordernung] gedacht ist.
Code:
MessageBox(NULL, "DeinTestText", "DerTitel", MB_OK);
Grüße,
Malte
Er hat gefragt, warum die If-Abfrage nicht geht und nicht wie man mit C++ eine winAPI MsgBox generiert. Für das Problem ist es völlig unrelevant wie er die Antwort ausgibt. Und ich denke für den Anfang ist es besser wenn er erstmal mit der normalen cout Konsolenausgabe arbeitet.
 
Zurück
Oben