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]);
    }

以上是我的源码,想要代码实现不回车就读取键盘输入

阅读 2k
2 个回答

可以使用数组来打印,假设输入的数字最大有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;
}
#include <stdio.h>
#include <conio.h>

int main() {
    char ch;
    while ((ch = _getch()) != '\r') {  // '\r' 回车键的ASCII码
        printf("%*c\n", 80, ch);  // 80对齐的宽度
    }
    return 0;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题