C语言 禁止回显某字符
tcgetattr和tcsetattr必须用在getchar之前我想实现的是其他字符正常回显,只有用户在控制台输入'a'的时候不显示a这怎么办?是在linux环境下的不能...
tcgetattr和tcsetattr必须用在getchar之前
我想实现的是其他字符正常回显,只有用户在控制台输入'a'的时候不显示a
这怎么办?
是在linux环境下的
不能用getch,getche函数 展开
我想实现的是其他字符正常回显,只有用户在控制台输入'a'的时候不显示a
这怎么办?
是在linux环境下的
不能用getch,getche函数 展开
3个回答
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;
}
/*注意,编译时要加上 -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;
}
展开全部
#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;
}
//改了,一样的写法,
#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;
}
//改了,一样的写法,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 getch()这个函数是不回显的,你要在每输入一个字符时判断是不是 a 不是再输出
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询