Falsche ausgabe bei Versetzen unabhängiger Funktionen.
-
Hallo,
Folgender Code ist gegeben :
#include <iostream> #include <cmath> #include <string> using namespace std; int main(){ double a=4,b=12.25,c=0.0121,x; string s = "Schon wieder was dazugelernt!\n",i,j,k; cout <<s<<"Länge der Zeile über dieser hier ist" <<s.length()<< "\n"; cout << "jez noch 2 zeilen eingeben bitte : " << endl; getline(cin,i); getline(cin,j); k = i+j; //Aufgabe 1 cout << "Wurzel von 4 = " << sqrt(a) << endl; cout << "Wurzel von 12.25 = " << sqrt(b) << endl; cout << "Wurzel von 0.0121 = " << sqrt(c) << endl; cout << "Bitte noch ne Zahl eingeben : "; cin >> x; cout << "Wurzel von " << x << " = " << sqrt(x) << "\n\n"; //getline(cin,i); //getline(cin,j); //cout << i << "*" << j; cout << k << endl; return 0; }So funktioniert der Code auch.
Wenn ich jedoch Zeile 12,13 & 27 in Kommentare umwandle, und dagegen die Zeilen
24-26 in Code zurückwanlde, kommt nicht die Ausgabe, die kommen sollte ( der eingegebene String i wird nicht ausgegeben).Woran kann das liegen ?
Nutze Visual C++ 2008 Express Edition auf Windows XP.
VIELEN DANK im Voraus
-
schreib ein cin.sync( ) nach jeder getline( )... dann muesst es gehen.
Gruß Tobi.
-
#include <iostream> #include <cmath> #include <string> using namespace std; int main(){ double a=4,b=12.25,c=0.0121,x; string s = "Schon wieder was dazugelernt!\n",i,j,k; cout <<s<<"Länge der Zeile über dieser hier ist" <<s.length()<< "\n"; //cout << "jez noch 2 zeilen eingeben bitte : " << endl; //getline(cin,i); //getline(cin,j); //k = i+j; //Aufgabe 1 cout << "Wurzel von 4 = " << sqrt(a) << endl; cout << "Wurzel von 12.25 = " << sqrt(b) << endl; cout << "Wurzel von 0.0121 = " << sqrt(c) << endl; cout << "Bitte noch ne Zahl eingeben : "; cin >> x; cout << "Wurzel von " << x << " = " << sqrt(x) << "\n\n"; cout << "jez noch 2 zeilen eingeben bitte : " << endl; getline(cin,i);cin.sync(); getline(cin,j);cin.sync(); cout << i << "*" << j; //cout << k << endl; return 0; }Leider keine Veränderung durch Einfügen von cin.sync() nach jeder
getline().
-
Aufräumen:
#include <iostream> #include <cmath> #include <string> int main() { const std::string note("Schon wieder was dazugelernt!\n"); std::cout << note << "Die Länge der Zeile über dieser hier ist " << note.length() << "\n" << "Jetzt bitte noch zwei Zeilen eingeben!" << std::endl; std::string first; std::getline(std::cin, first); std::string second; std::getline(std::cin, second); std::cout << "Zusammen: " << first + second << std::endl; const double a(4.0) const double b(12.25); const double c(0.0121); std::cout << "\nWurzel von " << a << " = " << std::sqrt(a) << "\nWurzel von " << b << " = " << std::sqrt(b) << "\nWurzel von " << c << " = " << std::sqrt(c) << std::endl; std::cout << "Bitte noch eine Zahl eingeben: "; double x(0.0); std::cin >> x; std::cout << "Wurzel von " << x << " = " << std::sqrt(x) << "\n" << std::endl; }. Dann geht doch alles

-
Kann mir jemand sagen WARUM der 2. Quellcode, den ich reingeposted habe,
so nicht funktioniert ?Und @Evil warum man std:: davor schreiben muss ?
-
krivil schrieb:
Kann mir jemand sagen WARUM der 2. Quellcode, den ich reingeposted habe,
so nicht funktioniert ?Da fehlt was!

cin >> x; cin.sync();krivil schrieb:
warum man std:: davor schreiben muss ?
Weil er den namensbereich nicht bekannt gemacht hat.
using namespace std;