如何删除cin后的行
How to delete a line after cin?
考虑以下代码:
#include<iostream>
int main() {
char line[256];
std::cin.getline(line, 256);
std::cout << line << std::endl;
}
执行后,无论我们输入什么文本,都会在控制台上显示两次。有没有一种方法可以用稍后的cout
覆盖用户输入的文本。
您可以抑制getline 的输出
#include <termios.h>
#include <unistd.h>
#include <iostream>
#include <string>
void SetStdinEcho(bool enable = true) {
struct termios tty;
tcgetattr(STDIN_FILENO, &tty);
if( !enable )
tty.c_lflag &= ~ECHO;
else
tty.c_lflag |= ECHO;
tcsetattr(STDIN_FILENO, TCSANOW, &tty);
}
int main()
{
SetStdinEcho(false);
char line[256];
std::cin.getline(line, 256);
SetStdinEcho(true);
std::cout << intput << std::endl;
return 0;
}
这适用于linux。
我的答案来自这篇文章从std::cin 读取密码
还显示了一个windows版本。
相关文章:
- 将数组的地址分配给变量并删除
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从链接列表c++中删除一个项目
- C++如何通过用户输入删除列表元素
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 是否需要删除包含对象的"pair"?
- C++中的cin.ignore()函数不适用于整个流
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 使用函数"remove"删除重复元素
- 如何从多映射中删除特定的重复项
- 如何删除cin后的行
- CIN.IGNORE删除第一个字符的第二次函数被调用
- getline删除第一个字符;删除cin.ignore();无法解决
- CIN,COUT 未删除标识符
- 无法删除 txt 文件中 getline(cin , (变量)) 之后的下一行
- 尝试从内存中删除字符串。不会让我分配给cin
- 操作符重载- cout和cin——ostream函数,不能被引用——它是一个已删除的函数
- cin.getline()正在删除我在c++中的第一个输入