Io.h per lettura file di testo

di il
2 risposte

Io.h per lettura file di testo

Sto provando ad utilizzare la libreria privata di basso livello <io.h> per aprire e leggere un file di testo ASCII.

in estrema sintesi:

	// Apertura del file:
	int hFile = _open( swFilename, _O_TEXT | _O_RDONLY );

	// Determinazione della dimensione:
	long size = _filelength( hFile );

	// Allocazione del buffer:
	char *buffer = malloc( size * sizeof(char) );
	
	// Scrittura sul buffer:
	long nRead = _read( hFile, buffer, size );
Se apro il file in modalità testo, il contenuto viene interpretato e ogni coppia di caratteri \r\n è rimpiazzata con un singolo \n. Questo fa si che non vi sia corrispondenza tra dimensione del file ed il numero di caratteri letti (size != nRead).
Allora si pone il problema di determinare correttamente la dimensione buffer da allocare. Qualche suggerimento?

Non ho problemi se apro il file in modalità binaria e poi aggiungo il terminatore nullo, ma se la _wopen è stata pensata per aprire il file in modalità _O_TEXT penso che debba esserci una soluzione per il corretto utilizzo di questo caso.

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte