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;
    

Anmelden zum Antworten