getView()
当我编译并输入输入ABC然后按回车键时,永无止境的循环就像AAAAAAAAA那样开始....
现在看看下面的代码
ImageButton imageButton = (ImageButton) v.findViewById( R.id.ib);
在这个程序中,当我输入ABC时,输出是ABC。 任何人都可以解释为什么它不显示单个A作为输出?
答案 0 :(得分:0)
请查看您提及的以下代码
int main(void){
int c;
c = getchar();
while (c != EOF) {
putchar(c);
}
return 0;
}
当c = getchar();
执行&如果您在运行时&中提供了ABC
输入按ENTER(\n)
,该时间c
拥有第一个字符A
。
接下来循环,你的条件是c!=EOF
,即A!=EOF
,它始终是真的&它将无限打印A
,因为您没有要求第二次输入,因此c
持有A
。
上述代码的正确版本是
int main(void){
int c;
while ( (c = getchar())!=EOF) { /* to stop press ctrl+d */
putchar(c);
}
return 0;
}
案例2: - 现在查看第二个代码
int main(void){
int c;
c = getchar();
while (c != EOF) { /*condition is true */
putchar(c);
c = getchar ();/*After printing ABC, it will wait for second input like DEF, unlike case-1 */
}
return 0;
}
任何人都可以解释为什么它只显示一个A作为输出吗?为什么它只能打印A
,它打印你给出的任何输入,如ABC
& ;等等。请注意,getchar()
适用于缓冲输入,即当您按ENTER
getchar()
时,会读到& {如果没有任何内容可以阅读getchar()
,则会返回EOF
。