输入浮点值后无法输入整数
Cannot input integer after inputting float value
我的 C 程序遇到了一个奇怪的问题。从用户那里获得浮点数输入(薪水)后,程序结束并跳过要求整数输入(empcode)的行。谁能告诉我为什么会这样,我该怎么办?
#include <stdio.h>
#include <string.h>
struct employee{
int empcode;
float salary;
char name[30];
};
int main(){
struct employee e1, e2, e3;
printf("\nEnter name for e1: ");
gets(e1.name);
printf("\nEnter salary for e1: ");
scanf("%f", e1.salary);
printf("\nEnter employee code for e1: ");
scanf("%d", e1.empcode);
return 0;
}
你必须写
scanf("%f", &e1.salary);
scanf("%d", &e1.empcode);
而不是
scanf("%f", e1.salary);
scanf("%d", e1.empcode);
那就是你需要通过指向参数的指针来传递参数。
注意函数gets
不安全,C标准不支持。而是使用函数 fgets
.
我的 C 程序遇到了一个奇怪的问题。从用户那里获得浮点数输入(薪水)后,程序结束并跳过要求整数输入(empcode)的行。谁能告诉我为什么会这样,我该怎么办?
#include <stdio.h>
#include <string.h>
struct employee{
int empcode;
float salary;
char name[30];
};
int main(){
struct employee e1, e2, e3;
printf("\nEnter name for e1: ");
gets(e1.name);
printf("\nEnter salary for e1: ");
scanf("%f", e1.salary);
printf("\nEnter employee code for e1: ");
scanf("%d", e1.empcode);
return 0;
}
你必须写
scanf("%f", &e1.salary);
scanf("%d", &e1.empcode);
而不是
scanf("%f", e1.salary);
scanf("%d", e1.empcode);
那就是你需要通过指向参数的指针来传递参数。
注意函数gets
不安全,C标准不支持。而是使用函数 fgets
.