begin process at 2010 02 10 00:57:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

switch case et gets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

switch case et gets

jeudi 22 avril 2004 à 07:22:39 | switch case et gets

fab30

Bonjour, je travaille avec Dev c++ et lorsque que fait un prog contenant un gets dans un switch case ou dans une fonction appelée depuis un switch case, et bien le gets se fait sauter et le compilateur passe directement a la ligne en dessous !!! pourquoi ?
Exemple :

int main(){
char * texte;
int choix;
printf("Veuillez taper un texte : ");
// le gets marche
gets(texte);
while (choix!=0){
system("cls");
printf(" 1 ) Fonction 1\n");
printf(" 2 ) Fonction 2\n");
printf(" 0 ) Sortie 2\n");
scanf("%d", &choix);
switch (choix){
case 1 : printf("Veuillez taper un texte : ");
// le gets ne marche pas
gets(texte);
Fonction1();
break;
case 2 : Fonction2();
case 0 : printf("Fin du programme\n");
break;
default : printf("erreur de saisie");
}
}
system("PAUSE");
return 0;
}

Si vous voyer une solution...

----fab30----
jeudi 22 avril 2004 à 08:06:10 | Re : switch case et gets

frdestroyers27

Si je me souvient bien c'est pas une bonne idee d'utiliser un
gets apres avoir utiliser un scanf si tu doit le faire quand meme...essaie de mettre un gets() null exemple
gets();
gets(texte);

Destroyers27
jeudi 22 avril 2004 à 08:10:07 | Re : switch case et gets

frdestroyers27

juste dememe pourquoi n'utilise tu pas getch ou getche a la place de ton scanf?

Destroyers27
jeudi 22 avril 2004 à 08:32:13 | Re : switch case et gets

djl


attend, texte c'est un pointeur sur un caractere, tu ve saisir koi dessus? faut allouer, mais fait plutot un tableau statique, dynamique ca sert a rien pour une poigné d'octet

oubli pas fflush(stdout) avant une saisie, et pas de commentaires "//" en c ansi, utilise /* */

#include <stdio.h>
int main(){
char texte[200];
int choix;
printf("Veuillez taper un texte : ");
fflush(stdout);
scanf("%s",texte);
while (choix!=0){
system("cls");
printf(" 1 ) Fonction 1\n");
printf(" 2 ) Fonction 2\n");
printf(" 0 ) Sortie 2\n");
scanf("%d", &choix);
switch (choix){
case 1 : printf("Veuillez taper un texte : ");
fflush(stdout);
scanf("%s",texte);
Fonction1();
break;

case 2 : Fonction2();

case 0 : printf("Fin du programme\n");
break;

default : printf("erreur de saisie");
}
}
getchar();
return 0;
}
jeudi 22 avril 2004 à 10:52:27 | Re : switch case et gets

fab30

En fait, j'ai pas besoin d'allouer la memoire pour char * texte, c le fait pour moi (ca marche bien). Je veux absolument utiliser un gets parce qu'il permet la saisie des espaces alors que scanf ne le fais pas. Par contre, je suis particulierement interressé par fflush(stdout); elle fait quoi exactement ? elle vide le buffer ?
----fab30----
jeudi 22 avril 2004 à 12:04:07 | Re : switch case et gets

ymca2003

djl -> c'est pas plûtot un fflush(stdin) ?
jeudi 22 avril 2004 à 15:12:22 | Re : switch case et gets

vecchio56

Administrateur CodeS-SourceS
a la place de get tu peux aussi utiliser read, qui prendra aussi les espaces
jeudi 22 avril 2004 à 15:17:34 | Re : switch case et gets

vecchio56

Administrateur CodeS-SourceS
par contre il faudra bien mettre le zero final:


#include <io.h>
....
char b[100];
int n = read(0, b, 100);
b[n] = 0;
puts(b);
jeudi 22 avril 2004 à 19:49:43 | Re : switch case et gets

djl


ymca2003 ==> non, avant une saisie c'est stdout que tu dois vider pour etre sur que sont contenu soit afficher

ne fait JAMAIS fflush(stdin), ca a un effet indefinit (je cite k&r ansi)
jeudi 22 avril 2004 à 22:47:33 | Re : switch case et gets

1 2

Cette discussion est classée dans : texte, case, printf, switch, gets


Répondre à ce message

Sujets en rapport avec ce message

Problème avec un switch en C [ par alexis69 ] Alors voilà. J'ai coder un petit code avec un menu. À la fin de mon switch j'ai ajouté l'option default comme ça si une personne tape autre chose que probléme de switch case [ par dgac ] Bonjour j'ai un programme dans lequel j'utilise un switch case avec une variable qui doit prendre pour valeur "paire" "impaire" "sans" et non seulemen Besoin pour probleme code de cesar [ par fearwhite ] Bonjour, a tous je commence dans le langage C et j'ai codé un programme sur la base du code de cesar :#include #include static void purger(void){   Aide pour un "jeu de l'oie" [ par Meric92 ] Bonjour,Je souhaite faire un jeux de l'oie en C en mode console ... certes c'est moche mais je débute ...Pour l'instant j'ai fait le bout de code qui Quelle est la faute dans ce code de language c? [ par krolis ] bon voilà mon code( désolée je n'ai pas le temps de lire le réglement, donc excusez-moi si j'écris qielque chose de pas bien)#include #include int mai switch avec une structure [ par sakthivel ] Bonjour,Peut on faire un switch qui a comme argument des structures ?je m'explique j'ai fait un switch qui ressemble à cela :switch (cheval_inter)    Violation d'accès mémoire [ par zoneart ] Bonjour,Je suis débutant et j'ai écris deux trois lignes de codes que j'aimerais vous soumettre car une erreur de violation d'accès mémoire survient l CreateService [ par 0xYg3n3 ] Bonjour, Voila j'ai cree une application que je souhaits mettre en mode Service. Mais le probleme est que lorsque je vais dans le panneau de configura Petit problem avec switch [ par Darkneon ] Salut, Mon but est de faire bouger le curseur a l'ecran avec les fleches et d'afficher une lettre a cette position.J'ai le codde suivant.#include &l CASE [ par CHKDSK2K ] Bonjour, j'ai une variable de type char "choix";  je voudrais utiliser cette variable dans un switch mais il ne veut passwitch(choix){    case 'maison


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales