Werte speichern und ausgeben
-
Guten Abend,
ich hab da eine ziemliche Anfängerfrage, wie speicher ich einen bzw mehrere eingegebene Werte und gebe sie zu einem späteren Zeitpunkt wieder aus?
Ich hab das halbe forum und ca 10328 seiten bei google durchblättert, aber irgendwie finde ich da keine Lösung. Muss allerdings zugeben das ich nicht wirklich lange mit C++ rumbastel.
-
-
Okay die Frage war vielleicht falsch gestellt. Es geht mir eher darum das ich mehrere werte eingebe zb 1 3 5 7 -3 4 6 -9 3
die positiven werte werden in einer mathematischen formel berechnet, die negativen werden ignoriert. im moment sieht das bei mir so aus:
#include <iostream> using namespace std; int main() { double co1 = 0; double co2 = 0; double inp; for(inp=1;inp!=0;inp==0) { cout << "Eingabe: "; cin >> inp; if(inp > 0) { co1 = co1 + inp; co2 = co2 + (1/inp); } if(inp < 0) { cout << "bitte positive zahl eingeben" << endl; } } cout << "e1: " << co1 << endl; cout << "e2: " << co2 << endl; return 0; }nun sollen die neg werte allerdings noch gespeichert werden und nach den ergebnissen in einer gesonderten reihe ausgegeben werden.
-
Was du suchst, ist ein dynamischer Container, beispielsweise std::vector. Im Fall, dass die Zahl negativ ist, fügst du diese dem Vector per push_back hinzu und am Ende des Programms gehst du den Vector durch und gibst die Werte aus.
-
#include <iostream> using namespace std; int main() { vector<int> v; double co1 = 0; double co2 = 0; double inp; for(inp=1;inp!=0;inp==0) { cout << "Eingabe: "; cin >> inp; if(inp > 0) { co1 = co1 + inp; co2 = co2 + (1/inp); } if(inp < 0) { v.push_back(inp) cout << "bitte positive zahl eingeben" << endl; } } cout << "e1: " << co1 << endl; cout << "e2: " << co2 << endl; cout << "nicht inbegriffen" << v << endl; return 0; }also der sagt 100 fehler

-
#include <vector>
-> http://www.cplusplus.com/reference/bb
-
hmm also nun hat er zumindest nurnoch einen fehler:
Fehler 3 error C2679: Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::vector<_Ty>' akzeptiert (oder keine geeignete Konvertierung möglich) c:\users\sezai11\documents\visual studio 2008\projects\uni_prog1\testing\testing.cpp 29
-
Du musst den Vector am Ende in einer Schleife durchgehen, so direkt kennt Vector den Operator << nämlich nicht:
#include <iostream> #include <vector> // Wird natürlich benötigt using namespace std; int main() { vector<int> v; double co1 = 0; double co2 = 0; double inp; for(inp=1;inp!=0;inp==0) { cout << "Eingabe: "; cin >> inp; if(inp > 0) { co1 = co1 + inp; co2 = co2 + (1/inp); } if(inp < 0) { v.push_back(inp) cout << "bitte positive zahl eingeben" << endl; } } cout << "e1: " << co1 << endl; cout << "e2: " << co2 << endl; cout << "nicht inbegriffen"; for (int i=0; i<v.size(); ++i) // Nicht sehr elegant, dafür anfängerverständlich { cout << " " << v[i]; } cout << endl; return 0; }
-
for(unsigned int i = 0; i != v.size(); i++) { std::cout << v[i] << " "; }wäre eine möglichkeit(die simpelste aber keinesfalls die beste^^)
bb
-
simpel ist gut, viele dank euch beiden.
wenns simpel is check ichs wenigstens
-
sezai11 schrieb:
simpel ist gut, viele dank euch beiden.
wenns simpel is check ichs wenigstens
das dachten wir uns wohl auch beide : D
ich hab aber nen paar viele fehler reingemacht, sry - hab das ma korrigiert : Dbb