Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/12/2008, à 19:02

LerOn

ctime et son \n

Bonjour,

Je develope actuellement un programme en C qui utilise la commande stat().
Je veux afficher sur la sortie la date de dernière modification d'un fichier et pour cela j'utilise la fonction ctime() pour rendre cette date lisible par les humains.
Mais le problème est que ctime() place un \n a la fin de la chaine ce qui produit un retour a la ligne au niveau de mon affichage. Mais moi j'ai besoin d'afficher 2 dates sur la meme ligne.

J'aurai voulu savoir pourquoi un \n est placer a la fin de la chaine de retour de ctime() alors que \0 suffit largement.
Avez vous une solution pour afficher la date sans avoir ce \n? Il existe peut etre un fonction que je ne connais pas encore.

Merci pour votre aide.

Dernière modification par LerOn (Le 09/12/2008, à 19:04)

Hors ligne

#2 Le 09/12/2008, à 19:31

Link31

Re : ctime et son \n

Ben remplace-le par un \0. Comme le caractère \n est à la fin de ta chaîne, il suffit de faire :

size_t length;                                                                            
if ((length = strlen(buf)) > 0)
	buf[length-1] = '\0';

Dernière modification par Link31 (Le 09/12/2008, à 19:31)

Hors ligne

#3 Le 09/12/2008, à 19:36

LerOn

Re : ctime et son \n

Link31 a écrit :

Ben remplace-le par un \0. Comme le caractère \n est à la fin de ta chaîne, il suffit de faire :

size_t length;                                                                            
if ((length = strlen(buf)) > 0)
	buf[length-1] = '\0';

Merci Link31 pour ta réponse.
J'y avais penser mais je me demandé si il n'y avais pas une solution plus "propre".
Encore merci pour ton aide.

Hors ligne