Hilfe beim Debuggen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hilfe beim Debuggen

    tach,

    ich bräucht mal eure hilfe. und zwar bei folgendem quelltext ...

    C-Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int main ( void )
    4. {
    5. FILE *in, *out;
    6. int c;
    7. in = fopen("in.dat", "rb");
    8. out = fopen("out.dat", "w+b");
    9. if ( in == NULL || out == NULL )
    10. {
    11. printf("One of the following files is missing:\n\n\t- in.dat\n\n");
    12. return 1;
    13. }
    14. fseek(in, -1L, SEEK_END);
    15. while ( (c = fgetc(in)) != EOF )
    16. {
    17. switch ( c )
    18. {
    19. case 65:
    20. case 97: fputc(52, out);
    21. break;
    22. case 69:
    23. case 101: fputc(51, out);
    24. break;
    25. case 73:
    26. case 105: fputc(49, out);
    27. break;
    28. case 79:
    29. case 111: fputc(48, out);
    30. break;
    31. default: fputc(c, out);
    32. }
    33. fseek(in, -2L, SEEK_CUR);
    34. }
    35. return 0;
    36. }
    Alles anzeigen


    ... (in c geschrieben) tritt der fehler auf, dass er beim ersten newline zeichen komischerweise zwei datenmüllzeichen ausgibt, und dann wie geplant mit der abarbeitung der datei weiterverfährt. der zweck des proggies ist rückwärtsschreiben + gewisse zeichen ersetzen. dazu muss man im selben verzeichnis wie das projekt eine in.dat datei anlegen und sie mit input füllen, sprich irgendeinen text. ich benutze dazu die funktion fseek um mich in der datei zurechtzufinden. wenn ihr ne bessere möglichkeit findet als die meinige bin ich ganz offen.

    also: beim ersten newline, sprich "return" spuckt er mir immer zwei datenmüllzeichen in die out file. alle restilichen newline zeichen gibt er ganz normal wieder.

    hoffe wirklich mir kann jemand helfen. wenn ich das proggi z.b. vorwärts laufen lasse, sprich den text ohne fseek behandle, dann passiert der fehler nicht, sondern die datei wird ganz normal wiedergegeben, nur a, e, i, o, u werden halt durch zahlen ersetzt.

    help much appreciated.

    greetz