c语言 求解为什么打完2串字符 按回车键程序不结束

#include<stdio.h>
int main()
{
char ch1,ch2;
while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
}
return 0;
}

第1个回答  2012-11-18
这有一个理解的问题。 就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end",循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。
第2个回答  2012-11-18
while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
}
这里你第一次输入两个字符之后进入下一次循环,你敲的第一个回车赋给的是ch1,而此时ch2还是你上一次输入的单词。你敲两个回车试试本回答被网友采纳
第3个回答  2012-11-18
while语句是说当条件不满足是跳出循环,可是这里你的条件永远成立,在你判断的时候ch2没有赋初值,代码有问题啊,进入循环当然不结束了啊
第4个回答  2012-11-18
这意味着程序还没运行完。可能你的代码有问题
第5个回答  2012-11-18
#include<stdio.h>
int main()
{
char ch1,ch2;
while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
scanf(%c", &ch2); //加了一句
}
return 0;
}
这样看看会不会结束?追问

嗯 谢谢 可以结束 我想问下为什么这样 它才会结束?

追答

scanf(%c", &ch2); //加了一句

通过这句话读回车啊

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网