begin process at 2012 05 30 18:16:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

taille d'une chaine extraite d'un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

taille d'une chaine extraite d'un fichier

mardi 15 mars 2011 à 11:18:37 | taille d'une chaine extraite d'un fichier

aymen87

Bonjour

Je suis en train de lire à partir d'un fichier ligne par ligne en utilisant fgets, mais avec fgets je doit introduire la longueur maximale de la chaine attendu.

par exemple 500:
fgets(answer_buff,500,intermFileRePtr)


Quand je veux récupérer la longueur exacte de la chaine extraite en utilisant strlen() ça m'affiche le 500 que j'ai introduit, apparemment le fgets place le '\0' d'une manière statique.


ce serait agréable si quelqu'un me donne une proposition pour que je puisse récupérer la longueur exacte.

Merci
cordialement

mardi 15 mars 2011 à 11:57:32 | Re : taille d'une chaine extraite d'un fichier

CptPingu

Administrateur CodeS-SourceS
Pourtant ça fonctionne bien.
Avec le code suivant, fgets place le 0 terminal correctement:
Code C/C++ :
#include <stdio.h>
#include <string.h>

int main(void)
{
   FILE* pFile;
   char mystring [100];

   pFile = fopen ("myfile.txt", "r"); // "Kikoo" ecrit dans myfile.txt
   if (pFile == NULL)
     perror ("Error opening file");
   else
   {
     fgets(mystring, 100, pFile);
     puts(mystring);// Kikoo
     printf("%i\n", strlen(mystring)); // Affiche bien 6 et pas 100
     fclose (pFile);
   }
   return 0;
}


Tu as du faire une erreur ailleur dans ton code.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 15 mars 2011 à 13:44:15 | Re : taille d'une chaine extraite d'un fichier

aymen87

Merci pour la réponse je v vérifier ,je compile sous Linux, ca fait une différence ?
mardi 15 mars 2011 à 14:03:53 | Re : taille d'une chaine extraite d'un fichier

CptPingu

Administrateur CodeS-SourceS

je compile sous Linux, ca fait une différence ?


Normalement, non.
PS: Je compile aussi sous Linux, avec gcc 4.5

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 15 mars 2011 à 16:38:14 | Re : taille d'une chaine extraite d'un fichier

ed73

Bonjour

fgets arrête la lecture de la chaîne soit lorsqu'il rencontre un \n soit lorsqu'il atteint la longueur maximale, 500 dans ton cas.

Si strlen te renvoie systématiquement 500 c'est parce que les lignes de ton fichier font plus de 500 caractères. Tu dois donc déclarer answer_buff avec une taille suffisante, c'est à dire supérieure à la taille de la plus grande ligne de ton fichier.

vendredi 18 mars 2011 à 09:58:04 | Re : taille d'une chaine extraite d'un fichier

aymen87

Merci Ed73, desolé pour le retard de ce feedback , mais c'était plutôt parce que la déclaration de mon buffer était supérieure à 500 ;)


Cette discussion est classée dans : fichier, chaine, longueur, fgets, extraite


Répondre à ce message

Sujets en rapport avec ce message

Recherche chaine de caractères dans un fichier [ par Arkadius ] Bon j'ai été bcp plus explicite et précis dans mon poste précédant mais l'envoie de celui-ci à foiré, alors en bref.J'écris des chaines de caractères Urgent:supprimer une chaine d'un fichier [ par rene77 ] Bonjour à tous, J'ai besoin de supprimer des chaines de caractères d'un fichier txt.Je travaille sous Builder et j'y arrive pas !!!OUINNNN OUINNNS'il chaine de caractere de taille variable [ par habibdu70 ] slt,savez vous comment modifier la taille d'une chaine de caractere ?par exemple si le nom de fichier fait 8 caracteres, je creai un fichier de 8 cara recherche d'une chaine dans un fichier [ par ymlf ] Problème au niveau du scanf()int recherche(char *chaine,char *FileName){ int i, k; char *tmp, *tab[50], *timer[20]; FILE *svf; svf=fopen(FileName,"r lire un fichier txt ligne par ligne [ par lapinrose67 ] Bonsoir,Je developpe un logiciel en C sous Linux, voila mon problème:Je dois lire un fichier texte ligne par ligne et placer chacune d'entre ellesdans fichier txt [ par freerider76 ] Bonjour je voudrais savoir comment faire pour changer une chaine de caractere dans un fichier txt, parce là je vois pas; en fait je pars comme ça et i probleme recuperation donnée d'un fichier [ par poseidon2 ] Salut.Pou resumer, je fais une DLL pour une MFC et je cherche a recuperer les 10 premiers caracteres d'un fichier.J'utilise "fgets" mais celui ci bug chaine binaire ou non [ par Anacr0x ] Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui p nom de fichier variable [ par Orkblutt ] salut,en gros voila ce ke je veux faire:char* chaine="Fichier.txt";ofstream fich(chaine);ceci ne me cré pas d'erreur de compil mais par contre le fich nom de fichier variable [ par Orkblutt ] salut,en gros voila ce ke je veux faire:char* chaine="Fichier.txt";ofstream fich(chaine);ceci ne me cré pas d'erreur de compil mais par contre le fich


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales