Sie sind nicht angemeldet.

  • Anmelden

Lieber Besucher, herzlich willkommen bei: MastersForum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

30.08.2004, 20:33

leichte C++ Frage :)

Ich will das nachdem ich die erste Zahl eingegeben habe, dass die 2 Frage kommt aber er springt immer gleich zur Ausgabe.

#include -iostream- < hats nicht angeziegt deswegen habe ich - geschrieben
#include -cstdlib-

int main()

{
char a[20], b[20], c[20];
int w, x, y, z;





std::cout << "Geben Sie die 1. Zahl ein!" << std::flush;
std::cin.get(a, 20);
x = atoi(a);
std::cout << "Geben Sie die 2. Zahl ein!" << std::flush;
std::cin.get(b, 20);
y = atoi(b);
std::cout << "Geben Sie die 3. Zahl ein!" << std::flush;
std::cin.get(c, 20);
z = atoi(c);

w = x + y + z;



std::cout << w << std::endl;
Die Wahrheit kann nie falsch sein, nur schmerzhaft.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Christian« (30.08.2004, 20:34)


-=)GWC(RaMsEs

Erleuchteter

Beiträge: 5 098

Wohnort: Bamberg

Beruf: IT-ler

  • Nachricht senden

2

30.08.2004, 20:47

mach es doch einfacher ,was machst du den mit dem get und dem flush? ich habdas anders gelernt.

char a[20], b[20], c[20];
int w, x, y, z;

cout << "Geben Sie die 1. Zahl ein!" ;
cin>>a;
x = atoi(a);
cout << "Geben Sie die 2. Zahl ein!";
cin>>b;
y = atoi(b);
cout << "Geben Sie die 3. Zahl ein!";
cin>>c;
z = atoi(c);

w = x + y + z;



cout << w;
endl;


Edit: also so wpürd ichs machen, aber ich hab damals noch keine std:: verwendet.

PPS: das müsste gehen.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »-=)GWC(RaMsEs« (30.08.2004, 20:51)


3

30.08.2004, 20:49

deins funktioniert gar nicht , fehler beim compiler, ich habe den aktuellsten vom MS Visual C++ .

get ist der befehl um es in den speicher zuübertragen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Christian« (30.08.2004, 20:52)


4

30.08.2004, 20:52

meins funktioniert ja bloss dass er nur die erste frage stellt und die beiden anderen weglässt und gleich zum ergebnis, der letzten ausgabe springt, muss doch einen befhel geben der sagt "halt jetzt das erstmal ausgeben"

-=)GWC(RaMsEs

Erleuchteter

Beiträge: 5 098

Wohnort: Bamberg

Beruf: IT-ler

  • Nachricht senden

5

30.08.2004, 21:04

hast du mein edit gesehen?

6

30.08.2004, 21:05

Bei Ramses´ Code musst du vorne noch
using namespace std;
dranhängen.

Ansonsten geht der Code von Ramses (g++).

7

30.08.2004, 21:05

ja ber ohne std:: erkennt der compiler gleich gar nichts.

8

30.08.2004, 21:07

beim code von ramses finde ich auch kein include oder die geschweiften Klammern, ahbe ich schon dazu gemacht funzt aber trotzdem nicht, maybe weil zu neuer compiler ? denn ohne std:: nimmt der gar nix an.

9

30.08.2004, 21:12

blubb

Zitat


#include (iostream) // ( ) natürlich ersetzen
#include (cstdlib)

int main()
{
char a[20], b[20], c[20];
int w, x, y, z;

std::cout << "Geben Sie die 1. Zahl ein!";
std::cin >> a;
x = atoi(a);
std::cout << "Geben Sie die 2. Zahl ein!";
std::cin >> b;
y = atoi(b);
std::cout << "Geben Sie die 3. Zahl ein!";
std::cin >> c;
z = atoi(c);

w = x + y + z;

std::cout << w << std::endl;

return 0;
}

10

30.08.2004, 21:21

funktioniert, danke, nur dass in meinem tutorial halt ganz anders steht... aber naja muss ich halt schaun hauptsahc es funzt.

11

30.08.2004, 21:45

So, mich hat dieses Problem ein wenig beschäftigt, wieso cin.get nicht mehr als einmal klappt. Die Antwort ist jene: cin.get blockiert, wenn der Input Stream leer ist (beim ersten Aufruf der Fall). Beim zweiten Mal ist er allerdings nicht mehr leer und deswegen blockiert er nicht, d.h. du kannst nichts schreiben. Wenn du trotzdem cin.get verwenden willst, musst du den Input Stream löschen.

Zitat


#include (iostream) // ersetzen...

int main()

{
char a[20], b[20], c[20];
int w, x, y, z;

std::cout << "Geben Sie die 1. Zahl ein!";
std::cin.get(a, 20);
std::cin.clear();
std::cin.ignore( 1024, '\n' );
x = atoi(a);
std::cout << "Geben Sie die 2. Zahl ein!";
std::cin.get(b, 20);
std::cin.clear();
std::cin.ignore( 1024, '\n' );
y = atoi(b);
std::cout << "Geben Sie die 3. Zahl ein!";
std::cin.get(c, 20);
std::cin.clear();
std::cin.ignore( 1024, '\n' );
z = atoi(c);

w = x + y + z;

std::cout << w << std::endl;
return 0;
}

12

30.08.2004, 21:55

Respekt, klasse Leistung, ich habe mir die zähne daran ausgebissen warum das nicht geht, aber ich beschäftige mich mit C++ auch erst seit gestern Abend :)