gpt4 book ai didi

c - 获取一个字符串而不在控制台上显示它

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:39 27 4
gpt4 key购买 nike

我想从用户那里得到一个字符串(带空格),但我不希望它显示在控制台上。 C语言有什么方法可以实现吗?

最佳答案

我猜您想禁用用户输入的回显 字符。您可以通过使用 <termios.h> 中的函数设置终端属性来做到这一点像这样:

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

#define MAX_LINE_SIZE 512

int main (int argc, char *argv[])
{
/* get terminal attributes */
struct termios termios;
tcgetattr(STDIN_FILENO, &termios);

/* disable echo */
termios.c_lflag &= ~ECHO;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &termios);

/* read a line */
char line[MAX_LINE_SIZE] = { 0 };
fgets(line, sizeof(line), stdin);

/* enable echo */
termios.c_lflag &= ~ECHO;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &termios);


/* print the line */
printf("line: %s", line);

return 0;
}

上面的示例读取一行(不回显字符),然后将这一行打印回终端。

关于c - 获取一个字符串而不在控制台上显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830407/

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