rundungsfrage / textdateinlänge?



  • hallo!

    ich habe eine frage zum runden ( wie scho aus dem titel ersichtlich.. ).

    ich habe eine zahl und berechne davon 1 %.
    Wenn ich das jetzt auf ganze runde ( gibt es dafür eine funktion?), wie kann ich dann den rest ( der ja überbleibt gewiss bei bestimmten zahlen ) ignorieren oderso?
    einfach gleich die variable mit dem einen prozent nur soweit runden, dass nur noch die zahl vorn steht? dann fehlt doch manchmal was zur 100... 😞

    und noch etwas:
    wenn ich eine textdatei habe, wie kann ich ihre länge herausfinden.

    geht das einfacher als mit :

    int i = 0;
    char bla;
    while ( !eof ) {
    bla = input.get();
    i++;
    }
    

    oder so in der art? sprich: gibt es eine funktion dafür?

    danke scho ma 🙂



  • 2. Du kannst bei einem ifstream mit mit seekg und ios::end als ersten und 1 oder 0 (kann es gerade nicht ausprobieren) als zweiten Parameter an das Ende der Datei springen und dann mit tellg die Position abfragen, was gleich der Groesse in Bytes sein sollte.

    Gruss,
    DeSoVoDaMu



  • ich habe auch mein programm gerade nicht zur hand 😞

    muss es also später versuchen.

    jetz gibs erstmal mittach 🕶



  • Zum ersten: Wenn du das Ergebnis deiner Rechnung in einen int-Wert packst, werden Nachkommastellen automatisch verschluckt - ansonsten kannst du den Wert mit ceil() oder floor() auch zur nächsten ganzen Zahl auf- bzw. abrunden.

    Zum zweiten: tellg() am Dateiende liefert die Größe in Byte - und kann damit womöglich etwas über der Größe in Zeichen liegen (z.B. Windows speichert das \n als 2 Byte). Die beste Lösung ist es vermutlich, wenn du die Größe der Datei überhaupt nicht vorher berechnen mußt. Randfrage: Wozu brauchst du die Größe?



  • mh, das hängt miteinander zusammen.

    ich habe mir gedacht, mal eine prozentanzeige in ein verschlüsslungsprogramm einzubaun.
    da dieses jedes zeichen einzeln verschlüsselt, wäre es doch logisch, die gesamtanzahl der zeichen herauszubekomm und bei jedem prozent eine anzeige ( wie "| " oder "." ) zu machen.

    so war es gedacht 🙂


Anmelden zum Antworten