c scanf输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 11:55:14
就是比如说有个版面,要输入一个数,怎么样在光标一下打印其他东西?
比如
printf("abc\n");
scanf("%d",&i);
printf("def");
效果是abc
输入光标
def

让 输入光标 在已输出字 def 的上一行,比较困难。要用win32 的东西:

BOOL SetConsoleCursorPosition(
HANDLE hConsoleOutput,
COORD dwCursorPosition
);

BOOL WriteConsole(
HANDLE hConsoleOutput,
CONST VOID *lpBuffer,
DWORD nNumberOfCharsToWrite,
LPDWORD lpNumberOfCharsWritten,
LPVOID lpReserved
);

如果你用TC,也许它有win16的函数可用。
winNT 年代 用 int86(16,&i,&o);

printf("\ndef");

scanf不能加换行,只能像LS的在后面加个输出换行符

printf("abc\n");
scanf("%d",&i);
printf("\n");
printf("def");
就行了