如果我这样做:
std::string buffer;
std::getline(std::cin, buffer);
尽管缺少许多细节,比如libreadline提供的,我仍然可以使用backspace和ENTER来输入我的字符串。我不确定处理这些控制字符的责任。它是输入流std::cin
,它是底层控制台设备,还是std::getline
本身?
答案 0 :(得分:3)
我不确定处理这些控制字符的责任。它是输入流std :: cin,它是底层控制台设备,还是std :: getline本身?
它是控制台/终端/你拥有什么。相反,如果您通过管道向进程提供字符串,您应该收到,例如, \b
(退格)。
答案 1 :(得分:2)
它是终端设备(控制台)。
典型的终端将提供:
提供的确切功能取决于为终端设置的操作系统和功能。如果重定向标准输入,则所有这些功能通常会消失,控制字符会直接传递。