unsigned long numChars;
fz = fopen("text.txt", "r");
fseek(fz, 0, SEEK_END);
numChars = ftell(fz);
fseek(fz, 0, SEEK_SET);
// ... schreibe operationen etc.
fclose(fz);
dazu brauchst du die <stdio.h>. also datei öffnen, ans ende springen, position abfragen, und wieder an den anfang springen (falls du was schreiben willst). das ganze geht auch mit der ifstreamklasse fast genauso, musst dann nur die entsprechenden methoden nachgucken.
aber achtung, die anzahl der zeichen im textmodus entspricht nicht der echten größe der dtei, da im tectmodus das newline zeichen '\n' als eins gezählt wird, im binärmodus (also auch physikalisch auf festplatte) als zwei zeichen gezählt wird!!
MfG Noil
[ 07.07.2001: Beitrag editiert von: class CMarcus ]
ah - guter Beitrag. Das mit der Häufigkeitsverteilung wird zwar in der FAQ glaube ich erwähnt, aber auch der Hinweis für Zahlen > RAND_MAX ist natürlich wertvoll.
------------------
Viele Grüße
Marc++us
Besucht die C/C++-Ecke
http://www.c-plusplus.net
Ein ganz großes Dankeschön an alle http://www.c-plusplus.net/ubb/ubb/smile.gif.
Ihr habt mir richtig gut geholfen http://www.c-plusplus.net/ubb/ubb/smile.gif.
THX & Thumps up für dieses Board...
Vermutlich hast du srand mit einem festen Werd aufgerufen. Bevor du rand das erste mal aufrufst, muss die Funktion srand mit einem zufälligen Wert (z.B. der Systemzeit) aufgerufen werden. Näheres findest du bestimmt in der Doku zu rand /srand.