Après un scanf, rien ne se passe!
Résolu
Bouzed
-
Bouzed -
Bouzed -
Bonjour,
je suis en train de créer un petit programme tout bête, mais quand je dois entrer une donnée(avec scanf), j'appuie sur ENTER, mais là, rien ne se passe! Par contre si j'écris quelque chose, après avoir entré ma donnée et appuyé sur ENTER, là, l'action suivante se déroule...Mais lorsque j'arrive au prochain scanf, il prend ce que j'avais écrit après les ENTER pour confirmer le premier scanf...
Voilà, j'espère avoir été clair, même si je n'en ai pas l'impression XD, merci d'avance à ceux qui m'aideront!
je suis en train de créer un petit programme tout bête, mais quand je dois entrer une donnée(avec scanf), j'appuie sur ENTER, mais là, rien ne se passe! Par contre si j'écris quelque chose, après avoir entré ma donnée et appuyé sur ENTER, là, l'action suivante se déroule...Mais lorsque j'arrive au prochain scanf, il prend ce que j'avais écrit après les ENTER pour confirmer le premier scanf...
Voilà, j'espère avoir été clair, même si je n'en ai pas l'impression XD, merci d'avance à ceux qui m'aideront!
A voir également:
- Après un scanf, rien ne se passe!
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Mettre un mot de passe sur un dossier - Guide
6 réponses
Voici le programme, il s'agit d'une calculatrice mais pour l'instant, il n'y à que l'addition :
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, rien = 0;
printf("Quel operation?\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
scanf("%ld\n\n", &operation); // Ici j'entre le chiffre 1 et appuie sur ENTER mais je dois réentrer un chiffre et réappuyer sur ENTER pour continuer
if (operation == 1)
{
printf("Quels chiffre voulez-vous additionner?\n ");
scanf("%ld", &nombre1); // Pour ce chiffre, la machine utilise le chiffre que j'ai dû entrer avent pour pouvoir continuer
scanf("%ld\n\n", &nombre2); // Ici tout se passe normalement
resultat = nombre1 + nombre2;
printf("%ld + %ld = %ld", nombre1, nombre2, resultat);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, rien = 0;
printf("Quel operation?\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
scanf("%ld\n\n", &operation); // Ici j'entre le chiffre 1 et appuie sur ENTER mais je dois réentrer un chiffre et réappuyer sur ENTER pour continuer
if (operation == 1)
{
printf("Quels chiffre voulez-vous additionner?\n ");
scanf("%ld", &nombre1); // Pour ce chiffre, la machine utilise le chiffre que j'ai dû entrer avent pour pouvoir continuer
scanf("%ld\n\n", &nombre2); // Ici tout se passe normalement
resultat = nombre1 + nombre2;
printf("%ld + %ld = %ld", nombre1, nombre2, resultat);
}
return 0;
}
salut,
tu devrait commencer ton programme de cette facon (évident chacun peut programmer comme cela lui plait)
mais l'utilisation du switch rends ton programme plus propre, et evitera d'éventuelles erreures.
#include <stdio.h>
#include <stdlib.h>
//******************************************************************//
//****************** définition des variables *******************************//
//******************************************************************//
int choix;
long nbr1, nbr2, resultat;
//**********************************************************************//
//********************** programme principale *******************************//
//**********************************************************************//
int main(int argc, char *argv[])
{
printf("=========== ma premiere calculette =============\n\n");
printf("1. adition\n");
printf("2. soustraction\n");
printf("3. division\n");
printf("4. multiplication\n\n");
printf("donner le numero correspondant a l operation souhaitee\n");
scanf("%d",&choix);
switch (choix)
{
case 1:
printf("vous avez choisit d executer une adition \n");
break;
case 2:
printf("vous avez choisit d executer une soustraction \n");
break;
case 3:
printf("vous avez choisit d executer une division \n");
break;
case 4:
printf("vous avez choisit d executer une multiplication \n");
break;
default:
printf("mauvais choix \n");
break;
}
pour le choix de l'opération un simple if suffit
/* if choix == 1) // on choisit l'adition
tu demande tes chiffres , tu calcul et tu affiche le résultat
*/
essaie et tien nous au courant
a+
romain m.
tu devrait commencer ton programme de cette facon (évident chacun peut programmer comme cela lui plait)
mais l'utilisation du switch rends ton programme plus propre, et evitera d'éventuelles erreures.
#include <stdio.h>
#include <stdlib.h>
//******************************************************************//
//****************** définition des variables *******************************//
//******************************************************************//
int choix;
long nbr1, nbr2, resultat;
//**********************************************************************//
//********************** programme principale *******************************//
//**********************************************************************//
int main(int argc, char *argv[])
{
printf("=========== ma premiere calculette =============\n\n");
printf("1. adition\n");
printf("2. soustraction\n");
printf("3. division\n");
printf("4. multiplication\n\n");
printf("donner le numero correspondant a l operation souhaitee\n");
scanf("%d",&choix);
switch (choix)
{
case 1:
printf("vous avez choisit d executer une adition \n");
break;
case 2:
printf("vous avez choisit d executer une soustraction \n");
break;
case 3:
printf("vous avez choisit d executer une division \n");
break;
case 4:
printf("vous avez choisit d executer une multiplication \n");
break;
default:
printf("mauvais choix \n");
break;
}
pour le choix de l'opération un simple if suffit
/* if choix == 1) // on choisit l'adition
tu demande tes chiffres , tu calcul et tu affiche le résultat
*/
essaie et tien nous au courant
a+
romain m.
scanf("%ld\n\n", &operation);
Le problème vient d'une mauvaise utilisation du scanf. Il ne faut pas mettre de '\n'.
Utilise donc plutôt :
De même pour
Cdlt
Le problème vient d'une mauvaise utilisation du scanf. Il ne faut pas mettre de '\n'.
Utilise donc plutôt :
scanf("%ld", &operation);
De même pour
scanf("%ld", &nombre2);
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Donc voilà j'ai fais comme vous m'avez dis(pas \n après scanf, meilleure utilisation du switch ect...), mais là, j'ai un problème : quand je fais mon addition, j'écris les deux chiffres à additionner, mais au moment de faire le calcule il me sort quelque chose du genre " 3224455 + 5365346 = 85483875" alors que j'avais demandé quelque chose comme 24 + 15!
Donc je vous mets mon programme, avec un meilleur interface :
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, choix = 0;
printf("============Bienvenue dans ma calculatrice============\n\n\n");
printf("Voici les operations a choix : \n\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
printf("Tapez le chiffre correspondant et pressez ENTER : ");
scanf("%ld", &choix);
switch (choix)
{
case 1:
printf("\n\n\nVous avez choisi l'addition.\n\n");
break;
case 2:
printf("\n\n\nVous avez choisi la soustraction.\n\n");
break;
case 3:
printf("\n\n\nVous avez choisi la multiplication.\n\n");
break;
case 4:
printf("\n\n\nVous avez choisi la division.\n\n");
}
if (choix == 1)
{
printf("Choisissez le premier nombre a additionner : ");
scanf("%ld", &nombre1);
printf("Choisissez le deuxieme nombre a additionner : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\nVoici le calcule : %ld + %ld = %ld", &nombre1, &nombre2, &resultat);
}
return 0;
}
Donc je vous mets mon programme, avec un meilleur interface :
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, choix = 0;
printf("============Bienvenue dans ma calculatrice============\n\n\n");
printf("Voici les operations a choix : \n\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
printf("Tapez le chiffre correspondant et pressez ENTER : ");
scanf("%ld", &choix);
switch (choix)
{
case 1:
printf("\n\n\nVous avez choisi l'addition.\n\n");
break;
case 2:
printf("\n\n\nVous avez choisi la soustraction.\n\n");
break;
case 3:
printf("\n\n\nVous avez choisi la multiplication.\n\n");
break;
case 4:
printf("\n\n\nVous avez choisi la division.\n\n");
}
if (choix == 1)
{
printf("Choisissez le premier nombre a additionner : ");
scanf("%ld", &nombre1);
printf("Choisissez le deuxieme nombre a additionner : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\nVoici le calcule : %ld + %ld = %ld", &nombre1, &nombre2, &resultat);
}
return 0;
}