заставить fgets не печатать такие вещи, как ^ G или ^ D, вызванные клавишами со стрелками или другими управляющими клавишами - PullRequest
0 голосов
/ 15 июля 2011

В основном название самоочевидно.Я программирую на C и использую fgets в качестве функции ввода, но я не хочу, чтобы печатались управляющие символы.

Ответы [ 2 ]

3 голосов
/ 15 июля 2011

fgets() довольно прост и не дает вам большого контроля над тем, что появляется на экране.Я не думаю, что это возможно сделать.Возможно, вы захотите взглянуть на что-то более мощное - например, readline .

2 голосов
/ 15 июля 2011

Да, как говорится в другом посте, 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;
}

- НТН.

...