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

发布网友

我来回答

5个回答

热心网友

这有一个理解的问题。 就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end",循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。

热心网友

这有一个理解的问题。 就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end",循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。

热心网友

while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
}
这里你第一次输入两个字符之后进入下一次循环,你敲的第一个回车赋给的是ch1,而此时ch2还是你上一次输入的单词。你敲两个回车试试

热心网友

while语句是说当条件不满足是跳出循环,可是这里你的条件永远成立,在你判断的时候ch2没有赋初值,代码有问题啊,进入循环当然不结束了啊

热心网友

这意味着程序还没运行完。可能你的代码有问题

热心网友

这有一个理解的问题。 就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end",循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。

热心网友

while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
}
这里你第一次输入两个字符之后进入下一次循环,你敲的第一个回车赋给的是ch1,而此时ch2还是你上一次输入的单词。你敲两个回车试试

热心网友

#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); //加了一句

通过这句话读回车啊

热心网友

while语句是说当条件不满足是跳出循环,可是这里你的条件永远成立,在你判断的时候ch2没有赋初值,代码有问题啊,进入循环当然不结束了啊

热心网友

这意味着程序还没运行完。可能你的代码有问题

热心网友

#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); //加了一句

通过这句话读回车啊

热心网友

while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
}
这里你第一次输入两个字符之后进入下一次循环,你敲的第一个回车赋给的是ch1,而此时ch2还是你上一次输入的单词。你敲两个回车试试

热心网友

while语句是说当条件不满足是跳出循环,可是这里你的条件永远成立,在你判断的时候ch2没有赋初值,代码有问题啊,进入循环当然不结束了啊

热心网友

这意味着程序还没运行完。可能你的代码有问题

热心网友

#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); //加了一句

通过这句话读回车啊

热心网友

这有一个理解的问题。 就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end",循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。

热心网友

while(ch2!='\n')
{
scanf("%c",&ch1);
scanf(" %c",&ch2);
printf("%c",ch1);
printf("%c",ch2);
}
这里你第一次输入两个字符之后进入下一次循环,你敲的第一个回车赋给的是ch1,而此时ch2还是你上一次输入的单词。你敲两个回车试试

热心网友

while语句是说当条件不满足是跳出循环,可是这里你的条件永远成立,在你判断的时候ch2没有赋初值,代码有问题啊,进入循环当然不结束了啊

热心网友

这意味着程序还没运行完。可能你的代码有问题

热心网友

#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); //加了一句

通过这句话读回车啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com