Problème de lecture fichier texte
Bonjour à tous,
Sur VC++, j'essaie de programmer un petit programme permettant de lire caractère par caractère une chaîne contenue dans un fichier texte, en C.
Or le programme lit bien la chaîne en question, mais ajoute systématiquement des caractères bizarres à la fin de la chaîne lue. Est-ce que quelqu'un comprend pourquoi ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
FILE * f_out;
WIN32_FILE_ATTRIBUTE_DATA attr ;
int i = 0 ;
int taille_fichier = 0 ;
char ch = ' ' ;
char* szBuffer ;
f_out = fopen("Test.txt","r") ;
GetFileAttributesEx("Test.txt", GetFileExInfoStandard, &attr) ;
taille_fichier = attr.nFileSizeLow ;
szBuffer = (char *)calloc(taille_fichier, sizeof(char)) ;
fseek(f_out, SEEK_SET, 0) ;
for (i = 0 ; i < taille_fichier ; i++)
{
ch = fgetc(f_out);
szBuffer[i] = (char)ch;
}
fclose(f_out) ;
MessageBox(NULL, szBuffer, "Test Lecture", MB_OK) ;
free(szBuffer) ;
return 0 ;
} |
La variable taille_fichier est bien initialisée avec le nombre d'octets du fichier, qui correspond bien au nombre de caractères de la chaîne à afficher...
Alors pourquoi cet ajout de caractères bizarres à la fin de szBuffer ??? Et comment y remédier ?