voila je vourais savoir comment faire un scanf() sans retourner à la ligne :(
Version imprimable
voila je vourais savoir comment faire un scanf() sans retourner à la ligne :(
Salut,
en sortie :Code:
1
2
3
4
5
6
7 /*...*/ int i; printf("entrez un entier : "); scanf("%d",&i); printf("%d",i); /*...*/
C'est ce que tu souhaites ? :?Citation:
entrez un entier : 5
5
Mais on va surement te le dire, scanf est déconseillé pour les saisies..
Voir ici
ou bien, il souhaite qu'on puisse poser (et répondre) plusieurs questions sur une même ligne...
Mais ça, ce n'est pas possible, puisqu'il faut nécessairement appuyer sur Entrée pour valider...
Par contre, on peut demander deux valeurs d'un coup avec un seul scanf(). Le problème, c'est qu'on ne peut rien afficher entre la saisie de la première valeur et celle de la seconde...
Oui en effet poser plusieurs questions sur une seule ligne n'est pas possible :?Citation:
Envoyé par Médinoc
Precise un peu ta question car peut etre que le saisie de plusieurs valeurs d'un coup (donc sur une seule ligne) te conviendrait :wink:Citation:
Envoyé par mello
Tu veux dire une saisie directe du clavier ? Pas possible en C standard. Si tu as conio, cscanf() ou getch() pour construire la fonction si elle n'existe pas...Citation:
Envoyé par mello
oui c'etait sa je voudrais pouvoir poser et repondre a plusieur question sur la meme ligne .... :s c'est vraiment pas possible ?Citation:
Envoyé par Médinoc
Je pense qu'Emmanuel Delahaye a repondu à ta question :?
Je comprends pas ici sous windows et dev C++ lorsque je metsCitation:
Envoyé par sorry60
j'ai une demande poru envoyer un rapport d'erreur alors que chez moi sous BSD avec le même code ben ça marche 8OCode:fgets (i, sizeof i, stdin);
Vous avez une explication à ce comportement?
:merci:
PS: je regardais un peu fgets() ben si c'est plus safe c'est aussi plus délicat comme opérateur...
Salut
fgets lit des caractères qui sont rangés dans un buffer, tu interprètes ensuite en entier avec strtol :
Par exemplefgets suppose qu'on lui donne en premier argument une adresse où ranger les caractères et en second argument la taille maximum de cette zone.Code:
1
2
3
4 char tmp[100]; int i; fgets (buf, sizeof buf, stdin); i = (int) strtol(buf, NULL, 10);
Avec le meme code?Citation:
Envoyé par Gnux
fgets veut en premier parametre un pointeur sur un char, pas un entierCode:
1
2 char *fgets (char *s, int size, FILE *stream);
AvecCitation:
Envoyé par Gnux
, chez moi, ça ne compile pas. fgets() attend l'adresse du premier élément d'un tableau de char. Evidemment, j'ai inclus <stdio.h> et j'ai activé les warnings du compilateurCode:int i;
. Si ça compile et que ça exécute, le comportement est indéfini.Code:-Wall -Wextra -02 -ansi
Non. Il y a bien longtemps que je ne perd plus mon temps à expliquer un comportement indéfini. Ca va plus vite de corriger le code...Citation:
j'ai une demande poru envoyer un rapport d'erreur alors que chez moi sous BSD avec le même code ben ça marche 8O
Vous avez une explication à ce comportement?
Il faut respecter le type des paramètres...Citation:
PS: je regardais un peu fgets() ben si c'est plus safe c'est aussi plus délicat comme opérateur...