#include <conio.h>
void main()
{
int i=0,ch
while(1)
{
ch=getch()
if(ch>'0'&&ch<'9')
{
printf("%c",ch)
i++
}
if(ch==13)//回车键结束
{
break
}
else if(ch==8)//输入退格键
{
if(i==0)//当退到第一个字符的时候不能再退.
{
continue
}
else
{
printf("\b \b")//退一格
i--
}
}
}
}
可以用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
}
这是不可能的,只有你点击之后才知道是非数字字符,你可以用getch()来获取字符,同时该字符不会显示在控制台上,然后判断该字符是否数字,如果是数字,你可以putchar该字符,这样子看上去就可以达到你要的效果