LINUX 下无 getch() 函数,这是一个模拟实现getch() 函数的源代码.
上传时间: 2017-06-03
上传用户:alan-ee
词法分析程序:一. 为PL/0语言建立一个词法分程序GETSYM(函数) 把关键字、算符、界符称为语言固有的单词,标识符、常量称为用户自定义的单词。为此设置三个全程量:SYM,ID,NUM 。 SYM:存放每个单词的类别,为内部编码的表示形式。 ID:存放用户所定义的标识符的值,即标识符字符串的机内表示。 NUM:存放用户定义的数。 GETSYM要完成的任务: 1. 滤掉单词间的空格。 2. 识别关键字,用查关键字表的方法识别。当单词是关键字时,将对应的类别放在SYM中。如IF的类别为IFSYM,THEN的类别为THENSYM。 3. 识别标识符,标识符的类别为IDENT,IDRNT放在SYM中,标识符本身的值放在ID中。关键字或标识符的最大长度是10。 4. 拼数,将数的类别NUMBER放在SYM中,数本身的值放在NUM中。 5. 拼由两个字符组成的运算符,如:>=、<=等等,识别后将类别存放在SYM中。 6. 打印源程序,边读入字符边打印。 由于一个单词是由一个或多个字符组成的,所以在词法分析程序GETSYM中定义一个读字符过程getch。
上传时间: 2016-11-21
上传用户:小鹏
//建立窗口 win1 = newwin(15, 50, 1, 1) box(win1, ACS_VLINE, ACS_HLINE) mvwprintw(win1, 2,1, "WINDOW 1") mvwprintw(win1, 4,1, "Press any key switching to window 2") win2 = newwin(15, 40, 4, 20) box(win2, ACS_VLINE, ACS_HLINE) mvwprintw(win2, 2,1, "WINDOW 2") //建立子窗口 subwin = derwin(win2, 5, 25, 4, 5) box(subwin, ACS_VLINE, ACS_HLINE) mvwprintw(subwin, 2,1, "Sub Window of Window2") //刷新屏幕 refresh() wrefresh(win1) wrefresh(win2) touchwin(win1) wrefresh(win1) getch() touchwin(win2) mvwprintw(win2, 12,1, "Press any key to exit...") wrefresh(win2) //等待按键 getch() //结束 delwin(win1) delwin(subwin) delwin(win2) endwin()
标签: ACS_VLINE ACS_HLINE mvwprintw win
上传时间: 2017-06-12
上传用户:plsee
//初始化 initscr() //获得屏幕尺寸 getmaxyx(stdscr, h, w) //画背景 for(i=0 i<h i++) for(j=0 j<w j++){ mvaddch(i, j, ACS_CKBOARD) } refresh() //建立窗口 pad = newpad(80, 128) for(i=0 i<80 i++){ char line[128] sprintf(line, "This line in pad is numbered d\n", i) mvwprintw(pad, i, 0, line) } //刷新屏幕 refresh() prefresh(pad, 0, 1, 5, 10, 20, 45) for(i=0 i<50 i++){ prefresh(pad, i+1, 1, 5, 10, 20, 45) usleep(30000) } //等待按键 getch()
标签: getmaxyx initscr stdscr for
上传时间: 2014-08-30
上传用户:龙飞艇
#include "string.h" #include "ctype.h" #include "stdio.h" search(char pd[]) {FILE *fp; int time=0,i=0,j=0,add[80],k=0,m; char *ch, str[900]; m=strlen(pd); if((fp=fopen("haha.txt","r"))==NULL) { printf("Cannot open this file\n"); exit(0); } for(;!feof(fp);i++) { str[i]=fgetc(fp); if(tolower(str[i])==tolower(pd[k])) {k++; if(k==m) if(!isalpha(i-m)&&!isalpha((str[i++]=fgetc(fp)))) { time++; add[j]=i-m+1; j++; k=0; } else k=0; } } if(time) { printf("The time is:%d\n",time); printf("The adders is:\n"); for(i=0;i<j;i++) printf("%5d",add[i]); if(i%5==0) printf("\n"); getch(); fclose(fp); } else printf("Sorry!Cannot find the word(^_^)"); } main() { char pd[10],choose='y'; int flag=1; while(flag) {printf("In put the word you want to seqarch:"); scanf("%s",pd); search(strlwr(pd)); printf("\nWould you want to continue?(Y/N):"); getchar(); scanf("%c",&choose); if((tolower(choose))=='n') flag=0; else flag=1; } printf("Thanks for your using!Bye-bye!\n"); getch(); }
标签: 学生专用
上传时间: 2016-12-29
上传用户:767483511