xzm
21-04-2008, 18:32
hab hier bisschen code fabriziert:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *stream;
char *datei = "bla.txt";
int ch[1001];
if((stream = fopen(datei, "r")) == NULL) {
printf("could not open %s\n", datei);
exit(1);
}
while(!feof(stream)) {
for(i=0; i != 1000; i++) {
ch[i] = fgetc(stream);
}
}
fclose(stream);
for(i = 0; i != 1000; i++) {
putchar(ch[i]);
}
exit(0);
}
damit sollen aus einer datei einfach eine zahlenkette gelesen werden und in ein array (ch) geschrieben werden.
das problem ist, dass ich zwar sozusagen die richtige anzahl an zeichen bekomm (auch wenn ich mir zB ch[0] anzeigen lasse), allerdings sind es nicht die zahlen, sondern sowas:
�������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������� �����
wenn ich das putchar(ch[i]) direkt nach dem ch[i] = fgetc (...) aufrufe, dann klappt es, allerdings wird ganz am ende des zahlenstrangs auch ein solches zeichen � angezeigt.
mir scheint es komisch, denn die zahlen sollten ja so oder so im array gespeichert werden, unabhängig davon, in welcher schleife ich es ausgeben lasse... gdb sagt mir nix, außer dass alles glatt läuft.
sicher wieder nen trivialer fehler, allerdings komm ich (mal wieder) nich drauf :rolleyes:
hoff ich nerv nich zu arg, hab sozusagen änfängerprobleme ;)
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *stream;
char *datei = "bla.txt";
int ch[1001];
if((stream = fopen(datei, "r")) == NULL) {
printf("could not open %s\n", datei);
exit(1);
}
while(!feof(stream)) {
for(i=0; i != 1000; i++) {
ch[i] = fgetc(stream);
}
}
fclose(stream);
for(i = 0; i != 1000; i++) {
putchar(ch[i]);
}
exit(0);
}
damit sollen aus einer datei einfach eine zahlenkette gelesen werden und in ein array (ch) geschrieben werden.
das problem ist, dass ich zwar sozusagen die richtige anzahl an zeichen bekomm (auch wenn ich mir zB ch[0] anzeigen lasse), allerdings sind es nicht die zahlen, sondern sowas:
�������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������� �����
wenn ich das putchar(ch[i]) direkt nach dem ch[i] = fgetc (...) aufrufe, dann klappt es, allerdings wird ganz am ende des zahlenstrangs auch ein solches zeichen � angezeigt.
mir scheint es komisch, denn die zahlen sollten ja so oder so im array gespeichert werden, unabhängig davon, in welcher schleife ich es ausgeben lasse... gdb sagt mir nix, außer dass alles glatt läuft.
sicher wieder nen trivialer fehler, allerdings komm ich (mal wieder) nich drauf :rolleyes:
hoff ich nerv nich zu arg, hab sozusagen änfängerprobleme ;)