probleme de fgets() [C] - Programmation
Marsh Posté le 18-03-2001 à 01:42:54
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
Marsh Posté le 19-03-2001 à 09:13:41
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...
Marsh Posté le 19-03-2001 à 12:14:00
Ca marche sous DOS/Windows ? Je croyais qu'il y avait 2 caractères pour le \n dans cet environnement ?
Marsh Posté le 19-03-2001 à 15:11:28
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 ?
Marsh Posté le 17-03-2001 à 14:51:10
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)