Eh bien si tu as fait le test oui c'est uniquement sur le hd.
antp
Je croyais aussi, mais en général si je vire 2 caractères il me vire le dernier caractère, juste avant le retour de ligne... Serait-ce uniquement dans le hdd et pas dans les chaines que le \n prend deux caractères ?
Toxin
Ca marche sous DOS/Windows ? Je croyais qu'il y avait 2 caractères pour le \n dans cet environnement ?
grahf
oui c vrai, je suis trop con, merci !
antp
C'est tout simple quand même:
buf[strlen(buf)-1]=0;
tu mets un \0 à la place du \n, et c'est bon !
Y a 2 \0 mais c pas grave...
grahf
oui, c deja ce que je fait, mais je me demandais si il y avait pas une fonction C qui le faisait deja
J'ai lu dans des docs la fonction strstr_sup qui ferait ca mais elle est pas reconnue par linux
R@NNIS
ben tu te la code toi meme cette fonction c est pas sorcier...
tu fais genre une fonction char * ki retourne la chaine sans '\n'
et hop le tour est joue.
grahf
voila, je fais un fgets(buffer, 256, stdin); pour récupérer une chaine tapée par l'utilisateur sous la console. Le probleme c que je chope le '\n' final a la fin.
Pour le moment je dois faire un truc du style :
strncpy(buffer,nufer2,sizeof(buffer)-2); //on vire le '\n' et le '\0' a la fin
strcat(buffer2, '\0');
mais c un petit peu lourd
Est ce qu'il y a pas une fonction C pour faire ca ?
(ou du style remplacer une chaine de car par une autre)