C怎么实现键盘输入后右对齐输出?

作者站长头像
站长
· 阅读数 7
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]);
    }

以上是我的源码,想要代码实现不回车就读取键盘输入C怎么实现键盘输入后右对齐输出?

回复
1个回答
avatar
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;
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容