007
28.12.2006, 15:20 Uhr
0xdeadbeef
Gott (Operator)
|
Richtiger wäre allerdings
| C++: |
while(i < n && fscanf(fp, "%f", &c) == 1) {
|
...denn wir wollen ja keine Zahl verlieren, wenn wir keinen Platz mehr haben.
Denkbar wäre auch
| C++: |
int read_next_data_set(FILE *fd, double *dest, size_t n, size_t *read_elements) { double d; int i, status = 0;
for(i = 0; i < n; ++i) { int scan_status = fscanf(fd, "%lf", &d));
if(scan_status == 1) { dest[i] = d; } else if(scan_status == 0) { fputs(stderr, "Fehler beim Einlesen der Datei."); status = 1; break; } else { // scan_status == EOF status = 2; break; } }
*read_elements = i;
return status; }
|
...ist jetzt ungetestet, sollte aber hinhauen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 28.12.2006 um 15:29 Uhr von 0xdeadbeef editiert. |