Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使FGET不打印由箭头键或其他控制键引起的^G或^D等内容_C_Input_Fgets - Fatal编程技术网

C 使FGET不打印由箭头键或其他控制键引起的^G或^D等内容

C 使FGET不打印由箭头键或其他控制键引起的^G或^D等内容,c,input,fgets,C,Input,Fgets,基本上,这个标题是自我解释的。我正在用C语言编程,我使用fgets作为输入函数,但我不希望打印控制字符。fgets()非常简单,不能让您对屏幕上显示的内容进行太多控制。我认为这是不可能的。您可能希望研究更强大的功能,例如。fgets()相当简单,并且不提供对屏幕上显示内容的太多控制。我认为这是不可能的。你可能想研究更强大的东西,比如。是的,正如其他帖子所说,readline是你最好的选择。这也很简单。如果您在Linux上,那么应该已经安装了它。请尝试以下操作: #include <stdi

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

fgets()
非常简单,不能让您对屏幕上显示的内容进行太多控制。我认为这是不可能的。您可能希望研究更强大的功能,例如。

fgets()
相当简单,并且不提供对屏幕上显示内容的太多控制。我认为这是不可能的。你可能想研究更强大的东西,比如。

是的,正如其他帖子所说,
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;
}
#包括
#包括
#包括
//编译为:gcc.c-lreadline-lcurses
int main(int argc,char*argv[])
{
char*input=readline(“输入单词:”);
printf(“\n输入:[%s]\n”,输入);
返回0;
}
--
是的,正如其他帖子所说,
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;
}
#包括
#包括
#包括
//编译为:gcc.c-lreadline-lcurses
int main(int argc,char*argv[])
{
char*input=readline(“输入单词:”);
printf(“\n输入:[%s]\n”,输入);
返回0;
}
--
HTH.

但它会显示您键入的是什么,外观甚至难看的控制字符,但它会显示您键入的是什么,外观甚至难看的控制字符我使用lreadline和lCourses编译,但我得到readline/readline.h没有这样的文件或目录,我已与apt get install libreadline6进行了检查,它已安装,怎么了?我在/lib中找到了库,但为什么它没有链接?我需要配置gcc的搜索路径吗?
apt get install libreadline6 dev
应该可以解决这个问题。通常,如果找不到头文件,请检查是否安装了-dev(开发包)。详细说明@ChronoKitsune的有用建议:没有“-dev”的库版本只是已编译完成程序的运行库。当普通用户启动一个动态链接到它们的程序时,它们会自动加载。当然,不需要标题。相反,如果你开发程序,你需要头文件,也可能需要一些其他支持文件。我用lreadline和lCourses编译,但我得到readline/readline.h没有这样的文件或目录,我已经用apt get install libreadline6检查过了,它已经安装,怎么了?我在/lib中找到了库,但为什么它没有链接?我需要配置gcc的搜索路径吗?
apt get install libreadline6 dev
应该可以解决这个问题。通常,如果找不到头文件,请检查是否安装了-dev(开发包)。详细说明@ChronoKitsune的有用建议:没有“-dev”的库版本只是已编译完成程序的运行库。当普通用户启动一个动态链接到它们的程序时,它们会自动加载。当然,不需要标题。相反,如果你开发程序,你需要头文件,也许还需要一些其他的支持文件。