使fgets不能打印由箭头键或其他控制键引起的^ G或^ D之类的东西

时间:2011-07-15 01:43:28

标签: c input fgets

基本上标题是自我解释。我在C编程,我使用fgets作为输入函数,但我不希望打印控制字符。

2 个答案:

答案 0 :(得分:3)

fgets()相当简单,并不能让您对屏幕上显示的内容有太多控制权。我认为不可能这样做。您可能希望研究更强大的内容 - 例如readline

答案 1 :(得分:2)

是的,正如其他帖子所说,readline是你最好的选择。它也很简单。如果你在Linux上,它应该已经安装。尝试以下方法:

#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>

// compile as:  gcc <file>.c -lreadline -lcurses 
int main (int argc, char *argv[])
{
    char *input = readline("Enter words: ");
    printf("\n Input: [%s]\n", input );
    return 0;
}

- HTH。