000
07.05.2011, 09:57 Uhr
~Herr Gast
Gast
|
Hallo,
Hallo,
ich hab ein Programm das die Seiten in eine eigene File speichert und die sortierten(mit Bubble Sort) Flächen in eigene File speichert.
Ich weis noch immer nicht für was die Gesamte while da ist. Besonders das fscanf. Wäre cool wenn ihr mir das ganze Programm erklärt(Das Bubble Sort, also das Unterprogramm ist mir schon klar nur die Zeilen erklären die was mit File input ouput zum tun haben: fopen, close, die while, fscanf.... )
PS: Könnt ihr mir ein paar einfache Übungen zum File input output nennen, die ich dann programmieren kann?
Danke im voraus!
MfG Herr Gast
Hier ist es:
C++: |
#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_LEN 10
void sort(int a[],int laenge);
void sort(int a[],int laenge) { int i=0; int n=0; int hilf=0;
for(i=0; i < laenge - 1 ; i++) { for(n=0; n<laenge - i - 1; n++) { if(a[n+1] < a[n]) { hilf = a[n]; a[n] = a[n+1]; a[n+1] = hilf; } } } }
int main (void) { FILE * iofile = NULL; FILE * iofile2 = NULL; //file pointer zeigt auf das file int i=0; int a=0; int b=0; int n=0; int flaeche[MAX_LEN]; // array mit fläche int hilf=0; // Hilsvariable zum Sortieren
srand (time (NULL)); // wenn man das nicht macht sind die zufallszahlen bei jedem mal debuggen gleich; wenn man das will muss man srand auskommentieren iofile = fopen("Seite.csv","w"); if(iofile == NULL) { printf("fehler...."); exit(-1); }
for(i=0; i<MAX_LEN; i++) { a = rand () %100 + 1; b = rand () %100 + 1; fprintf(iofile,"%d;%d\n",a,b); } fclose(iofile);
iofile = fopen("Seite.csv","r"); if(iofile == NULL) { exit(-1); } iofile2 = fopen("Flache.csv","w"); if(iofile2 == NULL) { exit(-1); }
while( ! feof(iofile)) // eof = end of file; feof gibt zurück ob das file zuende ist-> ist das wahr; solange das file nicht zuende ist wird das file ausgeführt { fscanf(iofile,"%d;%d\n",&a,&b); // und vor a und b macht man dafür printf("%d; %d\n",a,b); fprintf(iofile2,"%d\n",a*b); }
fclose(iofile2); fclose(iofile);
iofile2 = fopen("Flache.csv","a+"); if(iofile2 == NULL) { exit(-1); }
printf("\n"); i=0; while(!feof(iofile2)) { fscanf(iofile2,"%d\n",&flaeche[i]); printf("%d\n",flaeche[i]); i++; } fprintf(iofile2,"\n"); sort(flaeche,MAX_LEN/2); // sortiert nur die hälfe der zahlen wegen /2 printf("\n"); for(i=0; i<MAX_LEN; i++) { printf("%d\n",flaeche[i]); fprintf(iofile2,"%d\n",flaeche[i]); } fclose(iofile2);
}
|
|