Retour a la ligne en c

Fermé
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 - 30 avril 2010 à 21:21
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 - 30 avril 2010 à 21:51
Rebonjour,
comment enlever les \n dans la lecture d'un fichier avec fgets ex:
fichier nom.txt :

marcel
bob
jack
allah
youchuuisme
banabe

la ca le met dans une chaine : fprintf("test%stest...", fichierdenom.txt);
mais il met le retour a la ligne,
comment faire pour l'enlever en gardans la fichier nom.txt tel quel?
merci.

5 réponses

Urielxx Messages postés 190 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 juin 2013 46
30 avril 2010 à 21:22
Tu parcours la chaine et tu enlèves les caractères '\n'
0
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 102
30 avril 2010 à 21:25
oui, mais comment?
0
Urielxx Messages postés 190 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 juin 2013 46
30 avril 2010 à 21:31
Tu dois lire tes lignes dans un tableau, non ?

Un truc genre :
/* on cherche le retour chariot */
for (i=0; chaine[i] != '\n'; i++);
/* on remplace par le marqueur de fin de chaine */
chaine[i] = '\0';

0
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 102
30 avril 2010 à 21:45
bon, ca marche pas, voici ma source :
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE* fichier = NULL;
FILE* profe = NULL;
char prof[1000] = "";
int i;
fichier = fopen("fichier.txt", "a+");
profe = fopen("nom.txt", "r");

while (fgets(prof, 1000, profe) != NULL)
{
fprintf(fichier, "%s", prof);
for (i=0; prof[i] != '\n'; i++);
prof[i] = '\0';

}
fclose(profe);
fclose(fichier);
printf("Fini\n\n");
system("PAUSE");
return 0;
}


ca compile mais ca plante quand je le lance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Urielxx Messages postés 190 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 juin 2013 46
30 avril 2010 à 21:48
Il faut modifier la chaine avant de l'écrire, déjà (si j'ai bien suivi ce que tu veux faire)

for (i=0; prof[i] != '\n'; i++);
prof[i] = '\0';
fprintf(fichier, "%s", prof);

0
seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 102
30 avril 2010 à 21:51
ca ne marche pas plus
0