programme pour stocker des informations d'un employé dans une structure
C'est un programme pour stocker des informations d'un employé dans une structure. Bien que le programme s'exécute, il montre de nombreuses erreurs, il ne me donne pas une chance à saisir une adresse. Pourquoi le programme ne fonctionne pas correctement . Où vais-je tort ?
#include <stdio.h>
#include <conio.h>
struct details
{
char name[30];
int age;
char address[500];
float salary;
};
int main()
{
struct details detail;
clrscr();
printf("\nEnter name:\n");
gets(detail.name);
printf("\nEnter age:\n");
scanf("%d",&detail.age);
printf("\nEnter Address:\n");
gets(detail.address);
printf("\nEnter Salary:\n");
scanf("%f",&detail.salary);
printf("\n\n\n");
printf("Name of the Employee : %s \n",detail.name);
printf("Age of the Employee : %d \n",detail.age);
printf("Address of the Employee : %s \n",detail.address);
printf("Salary of the Employee : %f \n",detail.salary);
getch();
}
C'est le résultat que j'obtiens:
- Vous êtes l'impression
age
etsalary
comme des chaînes, ils devraient être%d
et%f
à la place. Essayez de modifier et de mettre à jour votre réponse. C'est a problème, mais pas celui dont vous parlez. - J'ai fait les modifications nécessaires
Vous devez vous connecter pour publier un commentaire.
Déclaration
scanf("%d",&detail.age);
va lire222
mais pas le saut de ligne que vous avez entré. Cette nouvelle ligne va rester dans la mémoire tampon d'entrée et passer à côté de l'entrée gets().Vous pouvez utiliser
getchar()
méthode pour supprimer certains caractères à partir de la mémoire tampon d'entrée pour éviter de tels problèmes.Un autre problème est l'utilisation incorrecte de format spécificateur avec
printf
fonction.