c++获取终端命令行的输入字符串,常用方法有std::getline和linux库函数readline。cin和scanf也可以得到终端命令行的输入,但是其遇到空间就会结束,不是特别的好用。而std::getline和readline 不会忽略space、tab,遇到Enter才会结束,可适用大部分场景。
readline的使用需要注意以下几点:
需要先check下自己的linux系统是否安装了readline库,如果没有安装,ubuntu上执行sudo apt-get install libreadline-dev;centos上执行sudo yum install readline-devel
readline() 的参数是一个字符串,调用函数的时候会在屏幕上输出,这个函数会读取一行输入,然后返回一个指向输入字符串的指针,readline 会为输入的字符串动态分配内存,所以使用完之后需要free掉。
由于readline是一个动态库,编译的时候需要加上 -lreadline,不然会找不到相关的函数。并且,如果是直接g++命令行编译的,需要将-lreadline写在编译命令行的最后。
原文链接:https://blog.csdn.net/zgcjaxj/article/details/114548681