[C]File Input/Output

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

  • [C]File Input/Output

    Hi und Frohe Ostern!

    Ich hab hier ein Programm das ich nicht verstehe. Ich weis nicht warum die Zeile mit dem "r" genau dort ist und die Zeile mit dem "w" dort ist.
    Könntet ihr mir vielleicht das ganze Programm erklären?

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <math.h>
    4. int main()
    5. {
    6. FILE *Seiten=NULL;
    7. FILE *Flaeche=NULL;
    8. int i=0;
    9. int x=0;
    10. int a=0;
    11. int b=0;
    12. int ergebnis;
    13. Seiten = fopen("Seiten.csv","w");
    14. if(Seiten == NULL)
    15. {
    16. printf("unable to write\n");
    17. exit(-1);
    18. }
    19. for(i=0; i <= 10; i++)
    20. {
    21. a=rand();
    22. b=rand();
    23. fprintf(Seiten,"%d;%d\n", a, b);
    24. }
    25. fclose(Seiten);
    26. Seiten = fopen("Seiten.csv","r");
    27. if(Seiten == NULL)
    28. {
    29. printf("unable to read\n");
    30. exit(-1);
    31. }
    32. Flaeche = fopen("Flaeche.csv","w");
    33. if(Flaeche == NULL)
    34. {
    35. printf("unable to write\n");
    36. exit(-1);
    37. }
    38. while(!feof(Seiten))
    39. {
    40. fscanf(Seiten,"%d;%d\n", &a, &b);
    41. printf("%d -> %d\n", a, b);
    42. ergebnis = a * b;
    43. fprintf(Flaeche,"ergebnis = %d\n\n", ergebnis);
    44. }
    45. fclose(Seiten);
    46. fclose(Flaeche);
    47. return (0);
    48. }
    Alles anzeigen


    Hier hab ich ein ganz einfaches:
    Es schreibt die Funktion sin(x) in ein Dokument. Aber hier braucht man kein "r". Und auch keine while?
    Warum nicht?

    Quellcode

    1. #include <stdio.h>
    2. #include <math.h>
    3. int main (void)
    4. {
    5. FILE * iofile = NULL;
    6. float i=0;
    7. iofile = fopen("sinus1.csv","w");
    8. if(iofile == NULL)
    9. {
    10. printf("enable to write");
    11. exit(-1);
    12. }
    13. for(i=0.1; i<=6; i=i+0.1)
    14. {
    15. fprintf(iofile,"sin(%2.1f)= ; %2.4f\n",i,sin(i));
    16. }
    17. fclose(iofile);
    18. return(0);
    19. }
    Alles anzeigen

    MfG Mr Gibbs
  • Schau mal hier, die Beschreibung von fopen.

    Naja beim ersten Programm wird eine Datei jeweils zum lesen und zum schreiben geöffnet und beim zweiten nur zum Schreiben. (r=read=lesen, w=write=schreiben)

    Die While Schleife wird beim ersten Programm benutzt um alle Daten in der Datei einzulesen und dass geschieht halt solange bis das Dateiende erreicht wurde (-> Funktion eof = endoffile = Ende der Datei).

    Mfg Rushh0ur
  • Das Problem ist, dass ich nicht weis wenn ich "r" oder "w" verwenden soll.

    Das weis ich ja schon r verwendet man zum lesen und w zum schreiben, aber ich versteh nicht wie das gemeint ist?

    Wenn ich das 2. Programm jetzt jetzt statt "w" "r" schreibe dann gibt es ja das gleich aus es ändert sich ja nichts?
    Ich hab gedacht r und w sind unterschiedleich?

    Für was ist fscanf hier gut?? Ich kann ja nirgends Werte einsetzen?

    Ich versteh das nicht ganz :(.

    Wann und bei was muss ich r und w verwenden?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Mr Gibbs ()