for循环中的某些语句在每次迭代时都不执行 #包括 int main() { int NC=0,k=0; char-mychar; scanf(“%d”和“NC”); 对于(k=0;k
第一个printf语句下面的语句在for循环的替代迭代中执行。for循环中的某些语句在每次迭代时都不执行 #包括 int main() { int NC=0,k=0; char-mychar; scanf(“%d”和“NC”); 对于(k=0;k,c,for-loop,C,For Loop,第一个printf语句下面的语句在for循环的替代迭代中执行。 例如,当您在键盘上输入字符时,按一个字符键,然后按enter。输入流中有两个字符:输入的字符和换行符scanf()正在输入流中留下一个\n字符。在循环的下一次迭代中,scanf()将拾取此换行符。改为: #include<stdio.h> int main() { int NC=0,k=0; char mychar; scanf("%d",&NC); for(k=0;k < NC;k++) { p
例如,当您在键盘上输入字符时,按一个字符键,然后按enter。输入流中有两个字符:输入的字符和换行符
scanf()
正在输入流中留下一个\n
字符。在循环的下一次迭代中,scanf()
将拾取此换行符。改为:
#include<stdio.h>
int main()
{
int NC=0,k=0;
char mychar;
scanf("%d",&NC);
for(k=0;k < NC;k++)
{
printf("\nenter a character:-");
scanf("%c",&mychar);
printf("\n%c",mychar);
}
return 0;
}
跳过前导空格字符,包括换行符
要对此进行进一步扩展,
scanf()
从输入流读取字符。%c
说明符与一个字符匹配,因此第二个字符a\n
保留在输入流中。通过添加前导空格:%c”
,您告诉scanf()
首先匹配零个或多个空白字符(换行字符是空白字符,如\t
和\r
),然后匹配另一个字符,然后将其存储在mychar
中。这样,即使要从输入流中读取的下一个字符是换行符,也会跳过它。请注意,大多数转换说明符会自动跳过前导空格字符。没有的是:%c
、%[]
和%n
请不要将\n
放在字符串的开头!thanx人…它起作用了…但是你能再解释一点问题吗…它很完美..thanx
scanf(" %c",&mychar);