我是新手,面临一个基本问题,无法使用 getchar 打破 while 循环。以下代码编译成功,但只显示“请输入名称”并继续从键盘输入输入的字符,但不会在输入新行时中断特点 :-(
#include<stdio.h>
typedef struct employee
{
char name[20];
int age;
char country[20];
}emp;
void getinfo(char *str, const char *param)
{
int i;
char ch;
if (strcmp(param,"NAME" ) == 0)
{
printf("\nPlease enter NAME \n");
}
else if(strcmp(param, "COUNTRY") ==0)
{
printf("\nPlease enter COUNTRY \n");
}
while((ch==getchar())!= '\n')
{
str[i] = ch;
i++;
}
str[i]= '\0';
}
int getage(int *age)
{
printf("\n Please enter Age \n");
scanf("%d",age);
}
int main(void)
{
emp e1;
getinfo(e1.name, "NAME");
getinfo(e1.country, "COUNTRY");
getage(&e1.age);
}
请提供帮助。