|
Bas de page | |
---|---|
Auteur | Sujet : probleme avec scanf |
Publicité | Posté le 19-04-2004 à 21:12:20 |
Taz bisounours-codeur | printf("message sans \\n" );
|
Taz bisounours-codeur |
aucun effet. t'as besoin de retourner à l'école toi Message édité par Taz le 19-04-2004 à 21:19:03 |
Alana Amiga for ever. | Merci a vous deux, avec ca elle devrait y arriver.... |
Taz bisounours-codeur | merci à moi, si tu suis les conseils du mage, ça ne marchera jamais |
Taz bisounours-codeur | char * fgets (char * s, int size, FILE * stream);
|
Alana Amiga for ever. | Vi j'avais bien compris le principe, je voulais juste savoir si on pouvait pas faire tout aussi secure avec des commandes plus "simples". Mais bon, si pour eviter les buffer overflow y a pas le choix et qu'on est forcé de preciser la taille, ok, je vais lui conseiller ca.
|
Publicité | Posté le 19-04-2004 à 21:37:23 |
Le Mage | Au lieu de casser tout le monde comme je viens de le voir sur d'autres post Taz, tu aurais pu remarquer le "pour faire simple" avant la suggestion du gets() vu qu'alana a l'air de débuter et faire juste qq tests.
|
Taz bisounours-codeur | ben en C, tu peux pas passer un tableau tel quel en paramètre, donc tu doit passer le tableau automatiquement converti en pointeur + sa taille. ça fait 2 paramètres déjà. après le flux, ici, stdin, le flux d'entrée standard ... rien de bien méchant. c'est sur que gets(char *buffer) aurait du être gets(char *buffer, size_t size) <-> fgets(buffer, size, stdin) mais c'est comme ça |
skelter | Le Mage ==> il est dit dans le k&r ansi que un fflush sur un input stream a un effet indefinis alors tu peux dir a t prof d'arreter de dir des connerie |
chaica |
|
skelter | oui faut etre plus rapide
|
Le Mage | je maintiens que pour les trucs basiques ca marche.
|
Taz bisounours-codeur |
1) non
|
Le Mage | Je répète que G donné çà "pour faire simple", je l'utilise jamais et j'utilise tt le tps fgets. |
Taz bisounours-codeur |
y a pas de "pour faire simple"
|
Le Mage | Enfin, je reconnais bien là le cliché du programmeur acharné et toujours agréable qd il explique (cf autres posts sur le même thème).
|
Taz bisounours-codeur | - gets est __la__ fonction à banir du C
|
skelter | j'ai chercher sur internet et des fflush(stdin) on en voit partout (tuto, cours, exemple, ...)
|
Taz bisounours-codeur |
dieu^k&r est mort. les gens ne croient plus en rien, on est plus beaucoup à penser que pour apprendre le C il faut lire le k&r |
skelter | oui, ca j'imagine, en fait qd on regarde bien rare sont les tutos qui respecte le standard ansi, ne serait-ce que pour les commentaires "//" omniresent
Message édité par skelter le 19-04-2004 à 22:44:19 |
Alana Amiga for ever. | Whaou.. je vois que ca declanche un debat passioné...
|
Taz bisounours-codeur | y a quoi qui marche pas ? le bout de code que je t'ai filé fonctionne parfaitement. tu te rends compte de ce que tu sors : tu fais du C depuis 1h et tu remets un cause une fonction de la bibliothèqye qui a plus de 20ans "hey elle bug cette fonction, c'est de la merde" ?
|
Alana Amiga for ever. | Hé Du calme Je te dis juste ce que je constate, et ce que pretend le prof de ma femme (je t'ai dit c'est pas moi qui fait le programme). Et donc ce monsieur pretend que fflush fonctionne pas sous linux, il se goure peut etre completement, j'en sais fichtrement rien moi. Si tu m'affirme que ca fonctionne tout aussi bien sous linux et que tu as pu le verifier, je te crois. Maitenant mon probleme c'est que le premier fgets recupere un \n qui vient de je sais pas ou. Pour la suite par contre ca marche parfaitement.
|
Taz bisounours-codeur | ben quand tu saisis "dawa" au clavier, tu valides et hop y a un '\n' qui est balancé. donc oui tu le récupères évidemment. c'est écris dans la documentation.
|
Taz bisounours-codeur | faut vraiment tout faire ici
Message édité par Taz le 20-04-2004 à 00:37:37 |
Taz bisounours-codeur | juste pour l'histoire : je m'applique a toujours donné du code du plus pur standard c'est à dire qui fonctionne parfaitement de manière identique partout où il y a un compilateur qui respecte la norme. le prof de ta femme est un amateur, un mauvais pédagogue, un ignorant. |
Alana Amiga for ever. | Bein c'etait ce qu'elle etait en train d'ecrire. Merci donc de lui confirmer que c'est bien comme ca qu'il faut faire. J'avoue que je comprend un peu son etonement, tout ce code la pour faire un simple scanf qui fonctionne, t'avouera qu'on a déja fait plus ergonomique... |
Taz bisounours-codeur | rien à voir.
|
Alana Amiga for ever. |
Message édité par Alana le 20-04-2004 à 09:33:42 |
Alana Amiga for ever. | Gasp, t'a été plus rapide que moi. Je pensai a strcpy et j'ai edité mon post, mais trop tard |
Taz bisounours-codeur | euh je vois pas de quoi tu parles pour strcpy ? elle est dans quelle fac ta femme ? quelle formation ?
|
Alana Amiga for ever. | Je parle de strcpy parce que c'est, il me semble, l'une des fonction a surtout pas utiliser pour faire du code secure, et tu semblait, comme moi, apporter une grande importance a cet aspect des choses. Message édité par Alana le 20-04-2004 à 00:58:06 |
Taz bisounours-codeur | strcpy peut en effet poser problème, on lui préfère strncpy/strlcpy mais c'est c'est là un moindre mal. le problème avec strcpy, c'est que si dans strcpy(dest, src) src a un problème, à savoir n'a pas de '\0' terminal, là ça fait boom. si src est correctement formé et que dest est suffisemment large pour accueillir une copie des caractères de src, tout ira bien.
|
Alana Amiga for ever. | Je le note. Bon allez, dodo. Merci. |
Publicité | Posté le |
Sujets relatifs | |
---|---|
[CSS] Probleme d'affichage de taille de police sur IE5 | Problème de calcul de dates |
Problème ACCESS et Recorsource | [eclipse] probleme de visualisation de page JSP |
Problème de page | Probleme de transfert de chaîne de caractere vers BDD.HELP!!!! |
Petit probleme tout bete (printf/scanf) | probleme de scanf("%s",&...) |
[ C - Gros debutant ]Probleme de scanf | [C - Linux] problème avec scanf |
Plus de sujets relatifs à : probleme avec scanf |