C语言 禁止回显某字符

tcgetattr和tcsetattr必须用在getchar之前我想实现的是其他字符正常回显,只有用户在控制台输入'a'的时候不显示a这怎么办?是在linux环境下的不能... tcgetattr和tcsetattr必须用在getchar之前
我想实现的是其他字符正常回显,只有用户在控制台输入'a'的时候不显示a
这怎么办?
是在linux环境下的
不能用getch,getche函数
展开
 我来答
匿名用户
2012-02-26
展开全部
可以用curses库来控制屏幕输出,例如:
/*注意,编译时要加上 -lcurses 参数,以便引入curses库*/
#include <curses.h>
#include <stdio.h>

int main(int argc,char *argv[])
{
char c;
initscr();/*初始化curses程序*/
noecho();/*关闭屏幕回显*/
cbreak();/*将输入模式设置为字符中止模式*/
while ((c=getch())!='x')/*用getch()读取字符,循环用于演示,按x键结束程序*/
if (c!='a') {/*如果输入的不是a就输出这个字符*/
addch(c);/*在当前光标位置添加字符*/
refresh();/*刷新屏幕*/
}
nocbreak();/*将输入模式重新设置为默认的行模式*/
endwin();/*结束curses程序*/
return 0;
}
百度网友28b4182
2012-02-26 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1846万
展开全部
#include<stdio.h>
#include<string.h>
#include<conio.h>
char s[1000]={0};
int main()
{
int n=0;
while(s[n]=getche())
{
if(s[n]!='a')
{
n++;
s[n]=s[n-1];
n++;
}
else n++;

printf("\r%s",s);

}
return 0;
}
//改了,一样的写法,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
德昂当
2012-02-26 · TA获得超过2842个赞
知道大有可为答主
回答量:1074
采纳率:100%
帮助的人:755万
展开全部
用 getch()这个函数是不回显的,你要在每输入一个字符时判断是不是 a 不是再输出
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式