【发布时间】:2019-05-11 09:52:10
【问题描述】:
我正在尝试编写一个程序,从用户那里获取一些详细信息并将详细信息打印到屏幕上,我正在等待 printf 显示输入命令,但它不工作。 只有在我写完详细信息后,printf 才开始显示订单。 我该如何解决这个问题?
#include <stdio.h>
#define THIS_YEAR 2018
int calcAge(int year);
int main() {
char id[20];
int year;
char gender;
float height;
printf("Please enter your year birth\n");
scanf("%d", &year);
printf("Please enter your id\n");
scanf("%s", id);
printf("please enter your gender\n");
scanf(" %c", &gender);
printf("please enter your height\n");
scanf("%f", &height);
printf(
"Your id : %s , your age : %d , your gender : %s , your height : %.2f",
id, calcAge(year), (gender == 'f') ? "FEMALE" : "MALE", height);
return 0;
}
int calcAge(int year) {
return THIS_YEAR - year;
}
输出:
1991
203835568
f
1.73
Please enter your year birth
Please enter your id
please enter your gender
please enter your height
Your id : 203835568 , your age : 27 , your gender : FEMALE , your height : 1.73
【问题讨论】:
-
fflush(stdout)在scanf()之前。 –scanf("%s", id)永远不要那样做!使用%s时始终指定宽度! -
奇怪的是换行符没有刷新输出,你的操作系统是什么?
-
您能否提供一些有关您尝试应用程序的系统的详细信息。在?尽管
fflush(stdout)(@Swordfish 提示)可能会有所帮助,但我想知道为什么它是必要的。 -
@Agar123 你的操作系统是什么?你是在终端上运行还是在 IDE 下运行?
标签: c