学习之路之课程设计

来源:互联网 发布:apache2 解析php 编辑:程序博客网 时间:2024/04/27 19:38

  最近学校在开展大一学生的课程设计,也就是写一个简单的管理系统。因为老早就听学长说过大一最后两周要写课程设计,所以自己就早早作了准备。但通过实践看来,有很多在win下可以使用的函数在linux并不能使用(学校要求用linux编程,但不知道学校自己编的书为什么会有这种函数出现)。现在总结一下可以在win下使用,却不能在linux下用的。

(1)最让我费尽的就是getch()函数,我为了可以在linux编程实现像登陆linux系统输入密码的需求,对这个函数下了相当大的功夫。linux下getch()是有的,但是所用的库不是一般的库。我在网上百度到curses.h这个库。里面确实有getch()函数,但是这个库是做图形的。我研究了几个小时写出了我当时挺满意的密码输入函数。这个基本可以实现输入密码时候显示“*”。

char *insert_password(){printf("密码输入为:\n");initscr();cbreak();noecho();//disable echochar a[100], c,b = '*',d[20] = "密码输入:\n";int i= 0;        while((c=getchar()) != 13)      {    a[i] = c;   // printw("%c",b);            refresh();    printw("%c",b);    if( a[i] == 8 ) {    printw("/b /b");continue;    }    i++;        }        echo();//enable echo;        nocbreak();        endwin();i = 0;while( a[i] != 13 ) {i++;}a[i] = '\0';getchar();printf("%s\n",a);        return a;} 

接着几天,我都心情大好。有一天晚上,自己又重新测试一下程序时候,却出现了差错。这个函数是用不成了。当时的问题是:因为它是自己重新打开的一个窗口,在这个新窗口上进行密码的输入并且同时显示“*”。在这个窗口上我想像prntf("")函数一样打印语句,但是printw()却不能实现。因此,我还是返回到在terminal上,用system("stty -echo")函数将屏幕显示暂时关闭。

当时学习curses库函数时候,参照的是这个博客:http://www.cnblogs.com/dandingyy/archive/2012/08/23/2651644.html    感觉里面讲的很详细。

 

(2)在课本上,在文件章节中,有一个filelength()函数,这个也是用不了的。(也许在别的库里我不知道的...)  但我的观点是linux下wc命令很好用干吗还要在程序中用filelength()函数.



第一次发博客毫无经验,如有冒犯,请海涵....

0 0