Récuperer une chaine de caractères d'un Fichier
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Récuperer une chaine de caractères d'un Fichier



  1. #1
    invite2071fa3f

    Récuperer une chaine de caractères d'un Fichier


    ------

    Bonjour, J'essaie de récuperer une chaîne de caractère d'une longueur finie sur plusieurs ligne dans un fichier mais je n'y arrive pas
    Voici mon code


    Code:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
     
    int main(int argc, char *argv[])
    {
        FILE* fichier = NULL;
        char chaine[200] = "";
     
        fichier = fopen("test.txt", "r");
     
        if (fichier != NULL)
        {
        	
            while (fgets(chaine, 200, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
            {
                
                strncpy(chaine, fichier, 12);
       	    printf ("%s\n", chaine);
                
            }
     
            fclose(fichier);
        }
     
        return 0;
    }
    Merci pour votre aide !!

    -----

  2. #2
    invite4492c379

    Re : Récuperer une chaine de caractères d'un Fichier

    Hello,

    la doc peut aider .... si tu es sous linux un man fgets/strncpy ou sinon google.

    1. fgets(chaine, taille fichier) essaye de lire taille caractères dans fichier et les place dans chaine. Plusieurs cas de figure :

    * le pointeur de retourné n'est pas NULL
    **soit dans le fichier un \n est trouvé avant les 200 caractères (la ligne fait moins de 199 caractères) => ta chaine contient la ligne avec un 0 terminal
    **soit pas de \n est trouvé => tu as les 200 premiers caractères sans 0 terminal

    * le pointeur retourné est NULL alors soit il y a eu une erreur soit tu es en fin de fichier, il faut faire appel à ferror ou feof pour le savoir


    2. strnpcy(destination, source, longueur) est une fonction qui ne travaille qu'avec des chaines pas de fichier.



    Pour résoudre ton problème il va falloir que tu me dises quelle est la forme de ton fichier :

    * quelconque, les lignes peuvent être très longues
    * un mot par ligne
    * ...

  3. #3
    invite473b01b1

    Re : Récuperer une chaine de caractères d'un Fichier

    Euh, c'est pas plutot ça que tu essais de faire ?

    Code:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
     
    int main(int argc, char *argv[])
    {
    	FILE* fichier = NULL;
    	int bufSize = 200;
    	int count = bufSize;
    	char buff[bufSize] = "";
    	char chaine[12] = "";
    
    	fichier = fopen("test.txt", "r");
    
    	if (fichier)
    	{
    		if (fgets(buff, bufSize, fichier))
    		{
    			while (count)
    			{
    				strncpy(chaine, buff, 12);
    				printf ("%s\n", chaine);
    				buff+=12;
    				count-=12;
    			}
    		}
    		fclose(fichier);
    	}
    
    	return 0;
    }
    PS: pas testé...

Discussions similaires

  1. stocker dans chaque case une chaîne de caractères
    Par invite53e0a16c dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 08/03/2011, 11h26
  2. Réponses: 1
    Dernier message: 10/08/2010, 17h26
  3. MATLAB récupérer le nom d'un fichier
    Par invite200ba45b dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 10/11/2009, 08h42
  4. [Perl] Mélanger une chaîne de caractères de grande longueur
    Par invite17a570c1 dans le forum Logiciel - Software - Open Source
    Réponses: 15
    Dernier message: 12/03/2009, 14h50
  5. Récupérer les données héxadécimales d'un fichier
    Par invite536f018a dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 16/03/2007, 22h47