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

时间:2015-01-02 08:16:41

标签: c io console

我想从控制台的特殊位置获取输入。我调用我的 gotoxy函数转到特定位置,然后调用getsscanf从该位置获取输入。但是光标等待用户输入并且不输入用户输入的先前文本。我的代码出了什么问题? 这是我的代码:

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

1 个答案:

答案 0 :(得分:3)

gotoxy()将更改光标的位置以供将来输出操作,但这并不意味着您可以从屏幕上读取。

scanf()是一个标准函数,从stdin读取,例如键盘。无法使用它来读取先前在屏幕上打印的字符。要做到这一点,你可以更容易地维护自己的缓冲区,记录你写入屏幕的字符,并在需要时从缓冲区中读取。

相关问题