Tom's Guide > Forum > Programmation > Question sur la lecture de chaine dans un ficher [langage C]

Question sur la lecture de chaine dans un ficher [langage C]

Forum Programmation : Question sur la lecture de chaine dans un ficher [langage C]

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour, alors voila mon problème: J'ai fait (pour m'entrainer) un petit programme en C qui lis des mp3; les chemins des fichiers sont stoké dans un fichier txt (1 fichier par ligne) et donc, pour lire une chanson, le programme lis une ligne avec "fgets", le problème c'est que le résultat de la lecture aparait de cette manière: "c:/.../.../.../machanson.mp3[]" Il y a un carré a la fin de la ligne, (quui est je pense le symbole de nouvelle ligne) mais a cause de sa, ben la musique ne peut pas ètre lu, le programme ne fonctionne pas, je voudrai donc savoir s'il existe un moyen de lire une ligne - n caractères?

Merci

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

il faut que tu t'arrètes au caractère "\n"
dans ton fichier txt, le petit carré que tu vois, c'est l'équivalent du "\n" en C qui veut dire que ça saute une ligne, mais le bloc notes affiche un carré à la place.

Si tu l'ouvres avec wordpad (par exemple), tu verras bien un saut de ligne.

Répondre à OmaR

oui, mais comment faire pour qu'a la lecture du fichier, le programme s'arrète avant le /n?

Répondre à floboss@IDN

http://www.lri.fr/~aze/page_c/aide_c/fgets.html
Il indique que fgets s'arrete au moment où il lit le caractère \n

Edit : pardon, il indique que le \n est dans la chaine de caractères ! attend qlq secondes !

Edit 2 : sinon, tu as strlen() pour avoir la longueur d'une chaine, donc tu fais un strlen()-1 pour avoir la longueur sans le dernier caractère, puis tu copies dans une autre variable

Répondre à OmaR

J'ai fait une capture de mon prog pour mieux comprendre:
http://floboss001.free.fr/Sans%20titre.PNG

Comme tu le vois, il y a un carré a la fin!

Et j'utilise bien la fonction fgets! ! !
J'sais plus quoi faire?!

Répondre à floboss@IDN

Omar ta donné la bonne solution...

Tu peux aussi utilisé une fonction de remplacement de caractère "str_replace" tu remplace \n par un caractere vide

Répondre à MouT59

J'avais pas vu les édit's, désolé, j'ai utilisé ta technique Omar, sa marche nikel crome, merci.

Répondre à floboss@IDN
Tom's Guide > Forum > Programmation > Question sur la lecture de chaine dans un ficher [langage C]
Aller à :

Il y a 441 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens