如何在应该显示的printf之前输入字符

how to input characters before a printf that should already be displayed?

本文关键字:printf 输入 字符 显示      更新时间:2023-10-16

我需要创建一个看起来像使用C 简历的程序。问题是我无法弄清楚应该在屏幕上已经应该已经在屏幕上的printf显示器输入。例如,我需要有此输出:

Name: _________ _____________ ____ 
      Last Name First Name    MI 

您会看到姓氏,名字和MI已经显示,但是我应该在他们面前的线上输入答案。我相信我们只应该使用数组,循环,函数(void)来创建此功能,而没有比这更先进的。帮助!

鉴于问题似乎是在不使用"高级"库的情况下要求解决方案,这是一种可能性,基于ANSI逃生序列,可以在此处找到。

这是一个开始的例子,证明这种事情可以手动完成。

#include <stdio.h>
#include <stdlib.h>
int main(){
    // Clear screen.
    printf("33[2J");
    printf("Name: _________ _____________ ____n"
            "       Last Name First Name    MIn");
    // Move cursor up two lines
    printf("33[2A");
    // Move cursor forward six characters.
    printf("33[6C");
    char lastName[20];
    char firstName[20];
    char MI[10];
    scanf("%s %s %s", lastName, firstName, MI);
    // Move the cursor down two lines
    printf("33[2B");
    printf("Name: %s %s %sn", firstName, lastName, MI);
}