解题思路:看过()的回显特性(图)

如何解决问题:

看过很多人的解题思路程序设计模式语言·卷5,但觉得太麻烦了。就个人而言,我认为我的解决问题的思路比较简单。

主要利用getche()没有缓冲区的特性。 gerche() 读取数字时,不会在屏幕上回显,也不会将数据存入缓冲区,而是直接运行下面的程序程序设计模式语言·卷5,导致用户输入数字,会循环一次。

注意事项:

图片[1]-解题思路:看过()的回显特性(图)-老王博客

1.虽然你输入了一个数字,但 getche() 读取的是字母。 ‘1’的ASCII码是49,后面需要赋值时,需要-48。

2.由于getche()的回显特性,需要在最终结果之前清屏,即先“空格”再“退格”。

示例代码:

#include     //注意!网络编辑器找不到conio.h这个头文件,我在自己的编译器上可以成功!
#include 
#include 
int main() {
	
	int n = 0;                                //设置n为位数。
	int x[6];			          //设置x[6]为每个位数的数字。
	for (int i = 1; i <= 6;i++)
	{
		int a = 0;
		a = getche();	                  //输入给a的数字是字符形式,所以后面需要减48。
		if (a=='\r')                      //因为不大于5,需要最后一位\r来判断输入结束。
		{
			printf("     \b\b\b\b\b");//由于getche()的特性,需要将回显清空。
			printf("%d\n", n);        //回显位数。
			break;
		}
		n++;
		x[i] = a-48;	                  
	}
	printf("%d  %d  %d  %d  %d\n",x[1],x[2],x[3],x[4],x[5]);//回显每个位数的数字。
	printf("%d%d%d%d%d\n",x[5],x[4],x[3],x[2],x[1]);        //反向回显数字。
	system("pause");
	return 0;
}

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论