IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Problème de lecture fichier texte


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 5
    Points
    5
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Solution
    Bon, en fait le problème était tout simplement lié à l'absence de caractère d'échappement à la fin du tampon de réception de texte...

    L'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    szBuffer[taille_fichier] = '\0' ;
    a résolu le problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème accent lecture fichier texte
    Par brisso dans le forum Langage
    Réponses: 12
    Dernier message: 27/06/2011, 19h46
  2. Réponses: 3
    Dernier message: 28/11/2010, 19h56
  3. Probléme lecture fichier text.
    Par deppierre dans le forum Windows
    Réponses: 7
    Dernier message: 15/12/2009, 19h11
  4. Problème STL lecture fichier texte
    Par Bourrine dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 03/04/2007, 11h57
  5. [VB.NET]Problème lecture fichier texte
    Par zouhib dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/05/2006, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo