Eingabe und Ausgabe



  • @SeppJ sagte in Eingabe und Ausgabe:

    Ein wichtiger Aspekt ist hier, dass man generell versuchen sollte, Dinge einfach zu tun, und zu gucken, ob sie dann fehlschlagen, anstatt vorher selber zu prüfen, ob die Dinge wohl gelingen werden. Denn oft vergisst man dabei etwas, oder macht etwas falsch. Zum Beispiel kommt unser Programm nun auch Problemlos mit Vorzeichen klar (auch so etwas wie "+123"). Wer hätte bei einer eigenen Prüfroutine daran gedacht, dass das auch eine gültige Ganzzahl ist?

    ➕ 1⃣

    Danke. Kann nicht oft genug gesagt/geschrieben werden. 🙂



  • @SeppJ Danke für diese ausfühliche Antwort! Das hat mir sehr weitergeholfen:)
    Ich probiere jetzt die restlichen Sachen aus der Textdatei zu bearbeiten



  • Guten Tag Leute,
    sorry das ich mich jetzt nochmal melden muss aber ich komme nun nicht beim lesen des Double-Wertes und des Strings weiter.
    Der Double-Wert von Beispielsweise 4.23423434 muss mit sechs Zeichen wiedergegeben werden, dafür verwende ich ja

    double d = 4.23423434;   //diese Zahl sollte direkt aus der Textdatei gelesen werden und dient nur als Beispiel
    
    cout << setprecision(6) << d << endl;
    

    Die Ausgabe ist dann 4.23423 und somit ist das auch richtig.

    Beim String muss das Wort eine Länge von 15 haben und fehlende Ziffern sollen mit ('-') aufgefüllt werden.
    Beispiel:

    string s = "HalloWelt"; // soll ebenfalls aus der Textdatei eingelesen werden
    
    cout << setw(15) << setfill('-') << s << endl;
    

    Die Ausgabe ist dann ------HalloWelt und auch das ist richtig.

    Nun ist mein Problem das ich nicht weiß wie ich das mit in den Code von Beispielsweise @SeppJ integrieren soll. Ich weiß ja wie man was bearbeitet aber ich weiß nicht wie ich es aus der Textdatei einlesen kann und ausgeben kann.


  • Mod

    @KogoroMori21 sagte in Eingabe und Ausgabe:

    Nun ist mein Problem das ich nicht weiß wie ich das mit in den Code von Beispielsweise @SeppJ integrieren soll.

    Na, überhaupt nicht. Wie kommt es, dass die Anforderungen nun auf einmal völlig andere sind? Ist doch klar, dass mein Programm dazu nicht passen kann. Das kommt davon, wenn man nicht nach dem fragt, was man eigentlich wissen möchte.



  • @SeppJ Sorry, ich wollte ja auch zuerst nur wissen ich die Dezimalzahlen einlesen kann und in Hexa umwandeln kann, weil ich dachte ich kriege das für Double und String dann auch schon hin.


  • Mod

    @KogoroMori21 sagte in Eingabe und Ausgabe:

    @SeppJ Sorry, ich wollte ja auch zuerst nur wissen ich die Dezimalzahlen einlesen kann und in Hexa umwandeln kann, weil ich dachte ich kriege das für Double und String dann auch schon hin.

    So ganz daneben ist mein Ansatz für die geänderten Anforderungen ja nicht. Was hast du dir denn überlegt, was hast du versucht?



  • @SeppJ
    Nun ich habe zunächst versucht das Problem ohne das Einfügen der Textdatei zu lösen.

    Ich hab versucht in dem bereits vorhandenen Code die Lösung miteinzubeziehen aber das hat nicht so ganz hingehauen, denn ich wusste nicht wie ich die double und string Werte einlesen und bearbeiten kann.
    Also hab ich versucht das ganze ohne Einbindung der Textdatei zulösen und hab es auch somit hingekriegt. Ich denke also das mein Ansatz richtig ist nur ich wüsste nicht wie ich das anhand der Textdatei mache.


  • Mod

    @KogoroMori21 sagte in Eingabe und Ausgabe:

    Ich hab versucht in dem bereits vorhandenen Code die Lösung miteinzubeziehen aber das hat nicht so ganz hingehauen, denn ich wusste nicht wie ich die double und string Werte einlesen und bearbeiten kann.

    Das ist doch der entscheidende Punkt! Du musst doch mehr dazu gemacht haben, als "weiß ich nicht"!



  • @SeppJ Ja aber ich komme leider nicht darauf, weil ich nicht weiß wie das geht und ich es noch nie gemacht habe. Deswegen frage ich ja hier im Forum, damit ich einmal weiß wie das richtig geht



  • @KogoroMori21 sagte in Eingabe und Ausgabe:

    Ich weiß ja wie man was bearbeitet aber ich weiß nicht wie ich es aus der Textdatei einlesen kann und ausgeben kann.

    Hier wird doch alles, was durch Whitespace getrennt ist, nach und nach eingelesen:

    @SeppJ sagte in Eingabe und Ausgabe:

    	string wort;
    	while(cin >> wort) // und zwar genau hier!
    	{
    		try
    		{
    			int i;
    			size_t num_converted;
    			i = stoi(wort, &num_converted);
    			if (num_converted == wort.size())
    				cout << showbase << hex << i << endl;
    		} catch (invalid_argument){};
    	}
    


  • Ich gebe dir mal Hilfe zur Selbsthilfe:

    Hinweis: stoi im Code von @SeppJ steht für "string to int". Siehe auch: https://en.cppreference.com/w/cpp/string/basic_string/stol

    Da könntest du mal auf die Idee kommen zu suchen, ob es etwas ähnliches auch für double gibt. Vielleicht ja "stod"? Vielleicht guckst du auch in der Doku zu stoi mal im Bereich "See also"?

    Einlesen von Strings ist ja schon erledigt - dann wandelst du eben gar nicht um. Für Strings ist häufig auch getline sinnvoll, wenn du nicht ein Wort, sondern eine ganze Zeile lesen willst.


Anmelden zum Antworten