Frage zu "fread"
-
Hi Leute, Ich habe so ein Teil der programm geschrieben:
/*--- In header datei---/
struct instr{
uint32_t i;
int index;
};
/----------*/int main(int argc, char *argv[]){
FILE *inputfile =NULL;
char *inputfilename =NULL;int blocksize =32; // default blocksize =32
instr *buf;
int x;//parsing parameter
if((argc < 2) || (argc >5)){
usage ();
return -1;
}
while (i< argc){
if (strcmp (argv[i],"-i") == 0) inputfilename = argv[++i];
i++;
}assert(inputfilename);
//open input file for reading
if ((inputfile = fopen(inputfilename, "rb"))==NULL){
fprintf (stderr, "Error: Could not open %s for reading\n", inputfilename);
return -1;
}while (!feof(inputfile) {
buf = (uint32_t ) malloc(sizeof(uint32_t ));
buf [index] = fread(&x, blocksize/8, 1, inputfile);
index ++;
buf = (uint32_t)realloc(buf, sizeof(uint32_t)*index);
buf[length] = fgetc(f); // Nächstes Zeichen auslesen
....
}...Wie geht es, wenn Ich mehrere Zeilen nacheinander auslesen möchte:
Zuerst 1 , dann 2, dann 3 ........2. Frage:
Wie nenne Ich den End of File (EOF): #Instruktionen +1;Jede Instruktion: 32 Bit gross;
Viele Grüsse
Lena
-
In welcher Form stehen denn die Daten in deiner Datei? (binär wäre eine ziemlich kryptische Folge von Zeichen - da gibt es keine "Zeilen"; alternativ könnte ich mir noch vorstellen, daß sie als Binär- oder Hex-String in Textform vorkommen - in dem Fall ist fscanf() geeigneter zum Lesen)
PS: Code-Tags bringen etwas Übersicht in deine Quelltexte