有没有办法做到这一点?。
让我们以此代码为例:
int num;
printf("enter a number: ");
scanf("%d",&num);
printf("<- this is your number.");
输出将如下:
enter a number: 2
<- this is your number.
我想要的是:
enter a number: 2<-this is your number.
答案 0 :(得分:3)
您无法使用 scanf 执行此操作。根据您的平台(linux,windows,...),您应该使用库 ncurses 或类似的。
答案 1 :(得分:1)
int num;
printf("Enter a number: ");
scanf("%d", &num);
CONSOLE_SCREEN_BUFFER_INFO coninfo;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &coninfo);
coninfo.dwCursorPosition.Y -= 1;
coninfo.dwCursorPosition.X += 20;
SetConsoleCursorPosition(hConsole, coninfo.dwCursorPosition);
printf("<- this is your number.");
输出:enter a number. 2 <- this is your number.
答案 2 :(得分:0)
我正在假设您在终端中看到的内容在运行应用程序时stdin
被回显。
这意味着stdin
将回复它收到stdout
的内容。
正如Chux在上面提到的,这是依赖于平台的(和终端应用程序相关的)行为。
这里有好消息:
1。Hide password input on terminal 2. echoing of getchar and '\n' char from stdin
答案 3 :(得分:0)
没有可移植的方法,因为在当前平台(至少Windows和类Unix系统)中,默认输入是行缓冲并在低级回显。
有些方法可以不使用行缓冲输入或使用手动回声,但它将取决于平台。
在Linux下,例如,您可以将输入置于非规范模式(请参阅man termios):这将允许您一次读取一个char(例如)的数据,使用echo off,手动执行echo,不回显换行符,但在换行符后处理输入缓冲区(带sscanf
)。
在Windows下,您可以使用函数getch
(在conio.h
中声明)同时获取一个没有回声的字符。我不知道如何在Mac上做到这一点。