gpt4 book ai didi

c - for 循环中的某些语句不会在每次迭代时执行

转载 作者:行者123 更新时间:2023-11-30 14:56:40 25 4
gpt4 key购买 nike

#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;
}

第一个 printf 语句下面的语句在 for 循环的替代迭代中执行。IE。 enter image description here

最佳答案

当您在键盘上输入字符时,请按该字符的一个键,然后按ENTER。输入流中有两个字符:您输入的字符和换行符。 scanf() 在输入流中留下一个 \n 字符。在循环的下一次迭代中,scanf() 会拾取该换行符。更改为:

scanf(" %c",&mychar);

跳过前导空白字符,包括换行符。

为了进一步扩展这一点,scanf() 从输入流中读取字符。 %c 说明符匹配一个字符,因此第二个字符 \n 保留在输入流中。通过添加前导空格:"%c",您告诉 scanf() 首先匹配零个或多个空白字符(换行符是空白字符, >\t\r),然后匹配另一个字符,然后将其存储在 mychar 中。这样,即使从输入流读取的下一个字符是换行符,它也会被跳过。请注意,大多数转换说明符会自动跳过前导空白字符。没有的包括:%c%[]%n

关于c - for 循环中的某些语句不会在每次迭代时执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44476131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com