getline和控制字符
std::getline and control characters
如果我这样做了:
std::string buffer;
std::getline(std::cin, buffer);
尽管libreadline提供了许多细节,但我仍然可以使用退格和ENTER来输入字符串。我不确定处理这些控制字符是谁的责任。它是输入流std::cin
,是底层控制台设备,还是std::getline
本身?
我不确定处理这些控制字符是谁的责任。它是输入流std::cin,是底层控制台设备,还是std::getline本身?
这是控制台/终端/诸如此类的东西。如果你通过管道给进程提供一个字符串,你应该收到,例如b
(backspace)。
这是终端设备(控制台)。
一个典型的终端将提供:
- 缓冲(程序接收整行)
- 简单的行编辑(至少退格和输入,可能的行召回和光标键编辑)
- 回显(您可以看到您输入的内容)。
所提供的确切功能取决于您的终端的操作系统和功能集。如果您重定向标准输入,那么所有这些特征通常都会消失,并且控制字符会直接传递。
相关文章:
- 如何在 getline 中删除/忽略超过特定数字的字符?
- Getline(); 提取以 1A 字符停止
- xcode 从源代码中删除奇怪的控制字符
- 重用字符数组和 cin.getline
- 对c++中的输入使用getline函数时忽略第一个字符
- QTEXTEDIT更改控制字符
- 在Linux上使用libserial将ASCII控制字符发送到串行设备
- 如何以可读格式打印控制字符
- C 逃脱控制字符
- 使用退格控制字符擦除
- 在发送数据之前压缩数据 - 控制字符
- 如何通过C++代码在MySQL数据库中存储控制字符
- 将文件从客户端传输到服务器时缺少字节,字节值也表示一些控制字符
- 由于隐藏/控制字符,在C++中读取文本文件的行失败
- 如何在c++中打印/cout不可打印/控制字符
- 如何将十六进制值转换为ASCII控制字符的首字母缩略词
- Qt, c++ -从文件中读取控制字符
- getline和控制字符
- string控制字符:将十六进制数字赋给字符串
- 将控制字符传递给字符数组