View Full Version : Nouveau Probleme
celineee
23 avril 2004, 16h53
:(
Voila j'ai une chaine de caractère dans un fichier avec un retour chariot
et je ne veux pas recuperer ce retour chariot quand je fait mon fgets
alors j'ai essayer de reduire d'un caractère avec la ligne
strncpy(Fil->NomFilm,Fil->NomFilm,(strlen(Fil->NomFilm)-1));
mais ca ne marche pas il me garde le retour chariot
ca fait 2 heures que je galere dessus helppppppppppppppppppp :(
Benjy
23 avril 2004, 17h09
Dans mon souvenir un retour chariot est composé de deux caractères : chr(10) et chr(13)...
celineee
23 avril 2004, 17h12
c'est bonnnnnnnnn
a croire qu'il suffit de poster pour que tout devienne beau
on m'a donné une procedure qui m'a permis de resoudre le probleme je vous l'affiche au cas ou ca interesserait qq
void chomp(char* src)
{
char* temp;
int taille;
// on copie la chaine de départ dans temp
taille = strlen(src);
temp = (char*)malloc(sizeof(char)*(taille+1));
strcpy(temp,src);
// puis on utilise temp pour récrire dans src, moins un caractère
strncpy(src,temp,taille-1);
// et on rajoute le caractère de fin de chaine
src[taille-1]='\0';
}
celineee
23 avril 2004, 17h32
un retour chariot est en faite \n mais le c considere \n comme un seul charactère comme pour un \0
1for-matik
23 avril 2004, 18h12
un retour chariot est en faite \n mais le c considere \n comme un seul charactère comme pour un \0
Céline! Nous serions heureux que tu devienne une habituée de NDFR car les bons en programmation (surtout C++) manque gravement! :)
Et puis une "habituée" ça se voit rarement ici! ;)
1for-matik au taquet :D
Bienvenue Celine ;)
celineee
23 avril 2004, 19h15
je veux bien passer de temps en temps mais je suis pas très très bonne c'est pour ca que je demande de l'aide toutes les 30 secondes :p
mais si je peux aider y a pas de probleme
Samva
24 avril 2004, 19h10
c'est bonnnnnnnnn
a croire qu'il suffit de poster pour que tout devienne beau
on m'a donné une procedure qui m'a permis de resoudre le probleme je vous l'affiche au cas ou ca interesserait qq
void chomp(char* src)
{
char* temp;
int taille;
// on copie la chaine de départ dans temp
taille = strlen(src);
temp = (char*)malloc(sizeof(char)*(taille+1));
strcpy(temp,src);
// puis on utilise temp pour récrire dans src, moins un caractère
strncpy(src,temp,taille-1);
// et on rajoute le caractère de fin de chaine
src[taille-1]='\0';
}
Pour info, le '\n' et le '\0' comme tous les autres caractères ne sont qu'un seul... j'explicite, la présence du slash est ici pour faire comprendre qu'il s'agit d'un caractère spécial.... car comme tout le monde doit commencer a le savoir le slash est le caractère "d'échappement" en C (et ses dérivés) c'est aussi simple que ca... donc le C considère le \0 comme le caractère de code ASCII 0 voilà tout :)
$c@r
2 juillet 2004, 14h00
Ca voudrait dire que si on met \qqch ca marche aussi ?
Samva
2 juillet 2004, 23h01
Il y a une liste très réduite de ces caractères spéciaux genre pour le C++ standard, ca doit donner, en gros ;) :
\n saut de ligne
\t tabulation
\r retour chariot
\b backspace
\a beep
\" guillemet
\\ backslash
Il y en a d'autre relatif à l'impression (\f ou \v)
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.