Oppure

Loading
29/01/13 21:51
GrG
Ciao,
ho fatto un semplice metodo che legge un carattere da un file di testo e poi vi scrive sopra due caratteri (a e b):
void Prova() {
	FILE* fp = fopen("C:\ProveC\binfile\prova.txt", "r+");
	char c;
	fscanf(fp, "%c", &c);
	printf("Letto: %c", c);
	fprintf(fp, "%c%c", 'a', 'b');
	fclose(fp);
}


So che con "r+" posso sia leggere che scrivere, ma il codice sopra in questione non funziona, come mai? è come se non potessi scrivere alla fine del file, se ad esempio aggiungo:
    fseek(fp, -1, SEEK_CUR);
prima di fprintf, oppure mi sposto all'inizio del file, funziona tutto correttamente, perchè? .. sono un pò confuso :-|
Ultima modifica effettuata da GrG 29/01/13 21:52
aaa
30/01/13 8:43
nessuno
cplusplus.com/reference/cstdio/fopen/

For files open for appending (those which include a "+" sign), on which both input and output operations are allowed, the stream should be flushed (fflush) or repositioned (fseek, fsetpos, rewind) between either a writing operation followed by a reading operation or a reading operation which did not reach the end-of-file followed by a writing operation.

Ciao
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
31/01/13 18:58
GrG
è un piacere rivederti :D

non avevo fatto caso a questa nota, grazie ancora una volta :)
aaa