You are not logged in.

  • Login

1

Monday, August 30th 2004, 8:33pm

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.

This post has been edited 1 times, last edit by "Christian" (Aug 30th 2004, 8:34pm)


-=)GWC(RaMsEs

Unregistered

2

Monday, August 30th 2004, 8:47pm

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.

This post has been edited 2 times, last edit by "-=)GWC(RaMsEs" (Aug 30th 2004, 8:51pm)


3

Monday, August 30th 2004, 8:49pm

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.

This post has been edited 1 times, last edit by "Christian" (Aug 30th 2004, 8:52pm)


4

Monday, August 30th 2004, 8:52pm

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

Unregistered

5

Monday, August 30th 2004, 9:04pm

hast du mein edit gesehen?

6

Monday, August 30th 2004, 9:05pm

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

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

7

Monday, August 30th 2004, 9:05pm

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

8

Monday, August 30th 2004, 9:07pm

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

Monday, August 30th 2004, 9:12pm

blubb

Quoted


#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

Monday, August 30th 2004, 9:21pm

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

11

Monday, August 30th 2004, 9:45pm

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.

Quoted


#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

Monday, August 30th 2004, 9:55pm

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 :)