KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: c++ problem
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hi also letzter zeit lese ich ein c++ buch und hab ein kleinen problem ^^


HIER IST DAS ORIGINALE code von den buch

nun mein problem immer wenn ich die swicht schleife starte und ein case drücke wird die konsole sofort abgebrochen und getchar(); bring auch nix -_-"
warte mal


#include <iostream>

using namespace std;


int main()
{

const int rot = 1;
const int gelb = 2;
const int gruen= 3;


short ampel = rot;


switch (ampel)
{
case 1:
cout << "ROT!" << endl;
break;
case 2:
cout << "GELB" << endl;
break;
case 3:
cout << "GR/ÜN" << endl;
break;
}

getchar();
cout << endl << endl;
return 0;
}


das ist sinn los wozu die
"const int rot = 1;
const int gelb = 2;
const int gruen= 3;

wenn man es so macht

case 1:
cout << "ROT!" << endl;
break;

kann sein das meine variante besser war ^^ aber ich probiers mal















EDIT: ist genau die gleiche sache habs probiert -_-"
Was soll überhaupt passieren?
da soll eig. wenn ich eine zahl drücke z.b. 1 soll die "ampel" grün werden ^^ also da kommt einfach ein text
Ich kann zwar kein cpp, aber C. Ich habe selber mal ein Quiz programmiert, das heißt ich kenne mich einigermaßen mit der Materie aus.
Ich habe würde es so schreiben, habe es aber nicht probiert.

PHP-Code:
#include <iostream>
#include <conio.h>

using namespace std;
char ampel;


int main()
{

    
scanf("%s", &amp;ampel);

    switch (
ampel)
    {
    case 
'a'cout << "ROT!" << endl;
        break;
    case 
'b'cout << "GELB" << endl;
        break;
    case 
'c'cout << "GR/ÜN" << endl;
        break;
    }

    
getch();
   
return 
0;


cout << endl << endl;
Was soll das bringen?

EDIT: Du musst natürlich a, b und c drücken, aber klein.
Noch was: Ich habe es mit Absicht in einen PHP Code geschrieben, sonst werden die Header vom Parser im Forum verhauen.
Hier mal ein Beispiel:

Code:
include &lt;iostream&gt;

Zitat:
#include <iostream>
#include <conio.h> //für getch()

using namespace std;


int main()
{

const int rot = 1;
const int gelb = 2;
const int gruen= 3;


//Es wird keine Eingabe erwartet...
// short ampel = rot;
short int ampel
cin >> ampel;



switch (ampel)
{
case rot: cout << "ROT!" << endl;
break;
case gelb: cout << "GELB" << endl;
break;
case gruen: cout << "GR/ÜN" << endl;
break;
default:
cout << "Bitte 1, 2 oder 3 eingeben" << endl;

}

// getchar();
//Alternative:
cout << "Warte auf Eingabe...";
getch();
//Sinnlos...
// cout << endl << endl;

return 0;
}


Probiere es einmal so.
getch() ist zwar C, funktioniert aber gut und C++ bietet meines Wissens keine Alternative...

mfg D3lta

und was soll die zeile sein hab ich noch nie gesehen


scanf("%s", &amp;ampel);


?

xXAnonymXx :
und was soll die zeile sein hab ich noch nie gesehen


scanf("%s", &amp;ampel);


?


Das ist C und sollte in C++-Programmen durch cin ersetzt werden...

mfg D3lta

ok und ihr send mir ja codes ich hab mal überlegt wäre das nicht VIEL leicheter

Wird eigentlich alles vom Parser verhauen?

So heißt es richtig

scanf("%s", &ampel);

xXAnonymXx :
ok und ihr send mir ja codes ich hab mal überlegt wäre das nicht VIEL leicheter


Die Konsole würde sich nur sofort schließen...
Also solltest du es entweder über CMD starten oder vor return 0; ein system("PAUSE") hinzufügen, was aber eine schlechte Lösung ist!!

mfg D3lta

D3lta :
#include <iostream>

using namespace std;


int main()
{
short Eingabe;
cout << "1 fuer rot, 2 fuer gelb 3 fuer gruen";
cout <<"Ihre Eingabe : "
//getchar(); WAS SOLLEN DIE GANZEN getchar()??
cin << Eingabe"
//getchar();

switch (Eingabe)
{
case 1: cout << "ROT!" << endl;
getchar();
break;
case 2: cout << "GELB" << endl;
getchar();
break;
case 3: cout << "GR/ÜN" << endl;
getchar();
break;
}
return 0;
}


die sind dafür da das man bei eingabe lesen kan was eingegeben wurde und das es nicht sofort verschiwndet

D3lta :

xXAnonymXx :
ok und ihr send mir ja codes ich hab mal überlegt wäre das nicht VIEL leicheter


Die Konsole würde sich nur sofort schließen...
Also solltest du es entweder über CMD starten oder vor return 0; ein system("PAUSE") hinzufügen, was aber eine schlechte Lösung ist!!

mfg D3lta


Statt system("PAUSE") lieber getch(); und natürlich mit include <conio.h> inkludieren.

~Hook~ :

D3lta :

xXAnonymXx :
ok und ihr send mir ja codes ich hab mal überlegt wäre das nicht VIEL leicheter


Die Konsole würde sich nur sofort schließen...
Also solltest du es entweder über CMD starten oder vor return 0; ein system("PAUSE") hinzufügen, was aber eine schlechte Lösung ist!!

mfg D3lta


Statt system("PAUSE") lieber getch(); und natürlich mit include <conio.h> inkludieren.


ahh man wieso ist jetzt system("pause") schlehte lösugn -_-"? und getch(); wozu wenn ich gechtar(); nehmen kann

EDIT: und getch(); bruahc ich ja diese conio.h das ist sinnlos da verschwende ich nur speicher also ich mach die exe nur grösser wozu ich nimm einfach getchar(); dazu braucht ich keine biblothek ^^

Seiten: 1 2 3 4 5
Referenz-URLs