zoukankan      html  css  js  c++  java
  • curses和窗口

      1 #include<stdio.h>
      2 #include<curses.h>
      3 #include<stdlib.h>
      4 #include<unistd.h>
      5 #include<string.h>
      6 #define PW_LEN 256
      7 #define NAME_LEN 256
      8 int main()
      9 {
     10     initscr();
     11     move(5,10);
     12     attron(A_BLINK);
     13     printw("%s","hello linux");
     14     attroff(A_BLINK);
     15     refresh();
     16     sleep(1);
     17     move(8,10);
     18     attron(A_BOLD);
     19     addstr("hello c/c++");
     20     attroff(A_BOLD);
     21     refresh();
     22     sleep(1);
     23     move(10,15);
     24     attron(A_STANDOUT);
     25     printw("%s","test and for fun");
     26     attroff(A_STANDOUT);
     27     refresh();
     28     sleep(1);
     29     
     30     int i=0;
     31     const char *read_password="test";
     32     char name [NAME_LEN];
     33     char password[PW_LEN];
     34     move(15,15);
     35     printw("%s","login:");
     36     while(true)
     37     {
     38     i=0;
     39     move(16,15);
     40     printw("%s","user name:");
     41     getstr(name);
     42     
     43     move(17,15);
     44     printw("%s","user password:");
     45     refresh();
     46     cbreak();  //非默认输入模式
     47     noecho();   //关闭回显功能
     48     memset(password,'',sizeof(password));
     49     
     50     while(i<PW_LEN)
     51     {
     52         password[i]=getch();
     53         if(password[i]=='
    ')
     54             break;
     55         move(17,30+i);
     56         addch('*');
     57         refresh();
     58         i++;
     59     }
     60     
     61     echo();
     62     nocbreak();
     63     move(18,15);
     64     
     65     if(strncmp(read_password,password,strlen(read_password))==0)
     66     {
     67         printw("%s","correct");
     68         break;
     69     }    
     70     else
     71     {
     72         addstr("wroing");
     73         sleep(2);
     74         clear();
     75     }
     76     refresh();
     77     }
     78 
     79     clear();
     80     //创建新的窗口
     81     
     82     int loop_x;
     83     int loop_y;
     84     WINDOW *new_window_ptr;
     85     WINDOW *popup_window_ptr;
     86     char a_letter='a';
     87     mvprintw(5,5,"%s","the multiple windows");
     88     refresh();
     89     for(loop_x=0;loop_x<LINES-1;loop_x++)
     90     {
     91         for(loop_y=0;loop_y<COLS-1;loop_y++)
     92         {
     93 
     94             mvwaddch(stdscr,loop_x,loop_y,a_letter);
     95             a_letter++;
     96             if(a_letter>'z')
     97                 a_letter='a';
     98         }
     99     }
    100     refresh();
    101     sleep(2);
    102     
    103     new_window_ptr=newwin(30,20,5,5);
    104     mvwprintw(new_window_ptr,2,2,"%s","hello my gril");
    105     wrefresh(new_window_ptr);   //对新建窗口进行刷新
    106     sleep(2); 
    107     
    108     a_letter='0';
    109     for(loop_x=0;loop_x<LINES-1;loop_x++)
    110     {
    111         for(loop_y=0;loop_y<COLS-1;loop_y++)
    112         {
    113 
    114             mvwaddch(stdscr,loop_x,loop_y,a_letter);
    115             a_letter++;
    116             if(a_letter>'9')
    117                 a_letter='0';
    118         }
    119     }
    120     refresh();
    121     sleep(2);
    122     wrefresh(new_window_ptr);   //对新建窗口进行刷新
    123     sleep(2); 
    124 
    125     touchwin(new_window_ptr);
    126     wrefresh(new_window_ptr);
    127     sleep(2);
    128     
    129     popup_window_ptr=newwin(20,30,8,8);  //再创建一个新的窗口
    130     box(popup_window_ptr,'|','-');
    131     mvwprintw(popup_window_ptr,5,2,"%s","hello i am the pop_window");
    132     wrefresh(popup_window_ptr);
    133     sleep(2);
    134     
    135     //对两新的窗口不断的进行输出
    136     touchwin(new_window_ptr);    
    137     wrefresh(new_window_ptr);
    138     sleep(2);
    139     wclear(new_window_ptr);
    140     wrefresh(new_window_ptr);
    141     sleep(2);
    142     delwin(new_window_ptr);
    143     touchwin(popup_window_ptr);
    144     wrefresh(popup_window_ptr);
    145     sleep(2);
    146     wclear(popup_window_ptr);
    147     wrefresh(popup_window_ptr);
    148     sleep(2);
    149     delwin(popup_window_ptr);
    150     touchwin(stdscr);
    151     refresh();
    152     sleep(2);
    153     
    154     endwin();
    155     exit(EXIT_SUCCESS);
    156 }

    这个程序是对键盘输入和对创建多窗口的一个例子。

  • 相关阅读:
    牛客IOI周赛17-提高组 卷积 生成函数 多项式求逆 数列通项公式
    6.3 省选模拟赛 Decompose 动态dp 树链剖分 set
    AtCoder Grand Contest 044 A Pay to Win 贪心
    5.29 省选模拟赛 树的染色 dp 最优性优化
    luogu P6097 子集卷积 FST FWT
    CF724C Ray Tracing 扩展欧几里得 平面展开
    5.30 省选模拟赛 方格操作 扫描线 特殊性质
    5.29 省选模拟赛 波波老师 SAM 线段树 单调队列 并查集
    Spring main方法中怎么调用Dao层和Service层的方法
    Bug -- WebService报错(两个类具有相同的 XML 类型名称 "{http://webService.com/}getPriceResponse"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。)
  • 原文地址:https://www.cnblogs.com/newworldcom/p/4101402.html
Copyright © 2011-2022 走看看