使用循环 inC 进行字符输入?
character inputs with loop inC?
int main(){
char students[20][20]={
"Ehtisham Hassan",
"Arbab Mushtaq",
"M Yaseen Ayub",
"Qamar Farooq",
"Muhammad Muneeb"
};
char isPresent;
for(int b=0; b<5; b++){
printf("%s\n",students[b]);
scanf("%c\n",&isPresent);
}
return 0;
}
我想让我的代码做的是从学生数组中打印一个学生的名字,然后等待用户输入一个字符,但它所做的是打印一个学生的名字,然后存储一个字符然后当循环第二次运行时,它会打印两个学生的名字,然后等待 char 输入。谁能告诉我为什么会这样?
这是我的程序的输出:
Ehtisham Hassan
a
Arbab Mushtaq
M Yaseen Ayub
a
Qamar Farooq
Muhammad Muneeb
a
预期输出:
Ehtisham Hassan
a
Arbab Mushtaq
a
M Yaseen Ayub
a
Qamar Farooq
a
Muhammad Muneeb
a
使用
scanf(" %c",&isPresent);
^^
white space and removed '\n`
而不是
scanf("%c\n",&isPresent);
参考这个FAQ问题。
int main(){
char students[20][20]={
"Ehtisham Hassan",
"Arbab Mushtaq",
"M Yaseen Ayub",
"Qamar Farooq",
"Muhammad Muneeb"
};
char isPresent;
for(int b=0; b<5; b++){
printf("%s\n",students[b]);
scanf("%c\n",&isPresent);
}
return 0;
}
我想让我的代码做的是从学生数组中打印一个学生的名字,然后等待用户输入一个字符,但它所做的是打印一个学生的名字,然后存储一个字符然后当循环第二次运行时,它会打印两个学生的名字,然后等待 char 输入。谁能告诉我为什么会这样?
这是我的程序的输出:
Ehtisham Hassan
a
Arbab Mushtaq
M Yaseen Ayub
a
Qamar Farooq
Muhammad Muneeb
a
预期输出:
Ehtisham Hassan
a
Arbab Mushtaq
a
M Yaseen Ayub
a
Qamar Farooq
a
Muhammad Muneeb
a
使用
scanf(" %c",&isPresent);
^^
white space and removed '\n`
而不是
scanf("%c\n",&isPresent);
参考这个FAQ问题。