gpt4 book ai didi

c++ - 关闭回显后如何再次回显输入字符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:30 33 4
gpt4 key购买 nike

我有这段代码,用于在终端的登录屏幕上隐藏我的密码。登录后,input all 还是空白。在 getline 完成后,如何将其设置为正常状态,如恢复默认值?

#include <iostream>
#include <string>
#include <termios.h>
#include <unistd.h>

using namespace std;

int main()
{
termios oldt;
tcgetattr(STDIN_FILENO, &oldt);
termios newt = oldt;
newt.c_lflag &= ~ECHO;
tcsetattr(STDIN_FILENO, TCSANOW, &newt);

string s;
getline(cin, s);


return 0;
}//main

最佳答案

您已经通过 get 调用保存了之前的终端状态;现在你只需要用 set 恢复它以与设置新状态相同的方式调用:

tcsetattr(STDIN_FILENO, TCSANOW, &oldt);

(对于 future 的访问者:第二个参数是一个标志,表示更改将立即发生。)

关于c++ - 关闭回显后如何再次回显输入字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975603/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com