c - 避免在 C 中读取输入后打印新行

标签 c

使用 scanf() 获取输入时,在输入 <Enter> 后提示符会切换到新行。 。接受输入后如何保持在同一行?

最佳答案

如果您可以使用escape sequences (不可携带):

#include <stdio.h>
#include <string.h>

#define moveup(x) printf("\033[%zuA", (x))
#define movedn(x) printf("\033[%zuB", (x))
#define movefw(x) printf("\033[%zuC", (x))
#define movebw(x) printf("\033[%zuD", (x))

int main(void)
{
    char str[128];

    scanf("%s", str);
    moveup(1UL);
    movefw(strlen(str));
    fflush(stdout);
    return 0;
}

关于c - 避免在 C 中读取输入后打印新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39267159/

相关文章:

c - C 中结构上的 free() 问题。它不会减少内存使用

c - 多个线程的 openmp for loop 错误结果

c - 获取 C 程序修改的所有内存位置的日志

c++ - C 中用 1 替换 0 的宏

c - 等待子进程而不释放其资源

c - 在不移动数组元素的情况下使用下标对数组进行排序

c - Perl:如何将所有内联 C 代码放入单独的文件中?

c - 字典顺序与数字顺序

c++ - USSD 响应的最大长度是多少(不是请求长度)?

c - ftell(FILE* fd) 和 lseek(int fd, off_t offset, int whence) 结果之间的区别