Werte aus einem Text file auslesen..



  • moin!
    Ich möchte bestimmte Werte auslesn lasen ( über die Console )! also z.B:

    das text file heist test ( ich arbeite mit RedHat 8.0 und weis daher die Datei endungen nich!).

    So im text file steht:

    Max=10€
    Jenny=20€
    Ich=5€

    So ich möchte z.B.: Das es alle Werte ( also 10€,20€,5€) zusammen zählt und mir das Ergebnis an der Console ausgibt!!Wie mach ich das?? 😕
    Ein beispiel Code wäre net!!

    scho ma Danke :p

    SEF



  • Mit fgets zeilenweise auslesen und nach dem Gleichheitszeichen suchen. Dann einfach den linken Teil als Namen nehmen und den rechten Teil mittels atoi in einen Integer umwandeln. Dann die Integer aufsummieren, ausgeben und fertig ist das ganze.



  • aha... hast du mir vieleicht ein beispiel code??
    oder weist du zufällig nen Link zu na Page die sich mit dem thema beschäftigen??



  • Hi,

    ich machs mal etwas genauer...

    Also, mit fgets() eine Zeile in den buffer einlesen, dann mit strchr() nach '=' suchen(immer prüfen sonst kann es zu einem 'Segmentation fault' kommen), ist es vorhanden,

    (zeiger = strchr(buffer, '=') != NULL
    

    , machst du ein Stringendezeichenhin '\0'

    *zeiger = ´\0';
    

    Nun, kannst du deinen Zeiger 'zeiger' eine Stelle weiterbewegen, also nach '\0'(wo frueher das '=' stand). Allerdings waere es sinnvoll zu testen ob es danach wirklich weiter geht. (z.bsp darf in der Datei nich "Max=" stehen). -> sonst kommts wieder zu Segmentation fault...

    zeiger++;
    

    Jetzt ist 'buffer' ein Zeiger auf deinen ersten String, das wäre dann z.bsp "Max", und zeiger auf "10€".

    Wenn ich mich nich irre, macht fgets() auch das \n in den Buffer rein, und erst danach das '\0' ...schaus dir halt genau an...

    Tjo, und nu kannste mit atoi() 'zeiger' zu einem int machen

    Aber Vorsicht, wenn du so mit Zeigern arbeitest darfst du nie vergessen immer kleine Tests zu machen, da sonst das Programm abschmiert 😉

    Cu



  • Hi,

    ich machs mal etwas genauer...

    Also, mit fgets() eine Zeile in den buffer einlesen, dann mit strchr() nach '=' suchen(immer prüfen sonst kann es zu einem 'Segmentation fault' kommen), ist es vorhanden,

    (zeiger = strchr(buffer, '=') != NULL
    

    , machst du ein Stringendezeichenhin '\0'

    *zeiger = ´\0';
    

    Nun, kannst du deinen Zeiger 'zeiger' eine Stelle weiterbewegen, also nach '\0'(wo frueher das '=' stand). Allerdings waere es sinnvoll zu testen ob es danach wirklich weiter geht. (z.bsp darf in der Datei nich "Max=" stehen). -> sonst kommts wieder zu Segmentation fault...

    zeiger++;
    

    Jetzt ist 'buffer' ein Zeiger auf deinen ersten String, das wäre dann z.bsp "Max", und zeiger auf "10€".

    Wenn ich mich nich irre, macht fgets() auch das \n in den Buffer rein, und erst danach das '\0' ...schaus dir halt genau an...

    Tjo, und nu kannste mit atoi() 'zeiger' zu einem int machen

    Aber Vorsicht, wenn du so mit Zeigern arbeitest darfst du nie vergessen immer kleine Tests zu machen, da sonst das Programm abschmiert 😉

    Cu



  • aha.....ja gut ich hab jetzt ein bischen rumprobiert und des tut jetzt!!!!

    Thx an euch!!!!!!!!!!!!


Anmelden zum Antworten