我们使用linux的curses来设计一个程序用来模拟 terminal 的用户登陆界面。要求用户输入用 户名,然后再要求用户输入密码,密码不能显示出来。
先来看看程序结果(看起来还不错)
主要用到函数就是基础的几个:
initscr();//初始化屏幕
move(int,int);//将位置移动到屏幕坐标(x,y)
printw();//在窗口里打印字符,打印完后会自动将位置移动
echo();//设置输入回显
noecho();//设置输入不回显
endwin();//结束新开的窗口
#include<unistd.h>
#include<stdlib.h>
#include<curses.h>
int main(){
initscr();//初始化屏幕
for (int i = 0; i < 41; ++i)
{
move(0,i);//将位置移动到屏幕坐标(x,y)
printw("-");//在窗口里打印字符,打印完后会将位置自动移动
move(20,i);
printw("-");
}
for (int i = 1; i < 20; ++i)
{
move(i,0);
printw("|");
move(i,40);
printw("|");
}
move(3,15);
printw("%s","User Login");
move(7,7);
printw("%s","Input your ID:");
echo();//设置输入回显到屏幕
char b[20];
getstr(b);
noecho();//设置输入不回显 就是输入你看不见输入了几个 光标不会动
move(9,7);
printw("%s","Input your PASSWORD:");
getstr(b);
move(17,9);
printw("%s","Login Successfully!!");
getch();
refresh();
sleep(1);
endwin();//关闭窗口
exit (0);
}