C怎么实现键盘输入后右对齐输出?
while (form[n1++] = _getch())
{
if (form[n1 - 1] == '=')
break;
if (form[n1 - 1] == 'd' || form[n1 - 1] == 'D')
{
printf("\b \b\b \b");
n1 -= 2;
continue;
}
if (form[n1 - 1] == 'q' || form[n1 - 1] == 'Q')
exit(0);
printf("%c", form[n1 - 1]);
}
以上是我的源码,想要代码实现不回车就读取键盘输入
回复
1个回答
test
2024-07-04
可以使用数组来打印,假设输入的数字最大有10位,则定义一个11个元素的数组,最后一个元素用来接收键盘输入。每次输入后,数组中前一位接收后一位的元素值,再利用cls清屏就能达成效果
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
int main()
{
char arr[11] = { 0 };
int n = 0, j = 0;
char ch = 0;
while ((ch = _getch()) != '\r')
{
if (j++ == 10)
break;
arr[10] = ch;
for (n = 0; n < 10; n++)
{
arr[n] = arr[n + 1];
}
system("cls");
for (int m = 0; m < 10; m++)
{
if (arr[m] == '\0')
printf(" ");
printf("%c", arr[m]);
}
}
system("pause");
return 0;
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容