从控制台的特定位置获取输入

getting input from specific position of console

我想从控制台的特殊位置获取输入。我调用 my gotoxy 函数去特定位置,然后调用 getsscanf 从那个 position.But 获取输入光标等待用户输入并且不输入用户输入的先前文本。我的代码有什么问题? 这是我的代码:

//suppose we are in position (0,0)
printf("%s","Hello world!\n");
//now we are in position (0,1)
gotoxy(0,0);
scanf("%s",string);//or gets(string)

现在字符串应该是 "Hello world!" 但它等待用户输入。

我的 gotoxy:

void gotoxy(int x , int y){
COORD newPosition={x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),newPosition);
}

gotoxy()会改变光标的位置,以便以后的输出操作,但这并不意味着您可以从屏幕上阅读。

scanf() 是从 stdin 读取的标准函数,例如键盘。没有办法用它来读取以前打印在屏幕上的字符。要做到这一点,您只需维护自己的缓冲区,记录您写入屏幕的字符,并在需要时从该缓冲区中读取内容,这样会容易得多。