Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
for循环中的某些语句在每次迭代时都不执行 #包括 int main() { int NC=0,k=0; char-mychar; scanf(“%d”和“NC”); 对于(k=0;k_C_For Loop - Fatal编程技术网

for循环中的某些语句在每次迭代时都不执行 #包括 int main() { int NC=0,k=0; char-mychar; scanf(“%d”和“NC”); 对于(k=0;k

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

第一个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++)
{ 
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);