C语言 仿LINUX下fortune命令(随机显示格言)
来源:互联网 发布:apache 认证访问 编辑:程序博客网 时间:2024/05/21 06:12
今天看到了一个LINUX下的有趣命令。
fortune命令。
当你执行此命令时,屏幕会随机显示一个格言。
然后,我花了一点时间用C语言做了一个大致的DEMO程序。
C语言程序:
#include<stdio.h>#include<stdlib.h>#include<time.h>//读取文件某一行的格言char * ReadSpeacialLine(int row,char filename[]) { FILE *fp; int WhichLine=row; //指定要读取哪一行 int CurrentIndex=0; //当前读取的行 char StrLine[1024]; //每行最大读取的字符数,可根据实际情况扩大 if((fp = fopen(filename,"r")) == NULL) //判断文件是否存在及可读 { printf("error!"); return NULL; } while (!feof(fp)) { if (CurrentIndex==WhichLine) { fgets(StrLine,1024,fp); //读取一行 printf("%s", StrLine); //输出 return StrLine; } fgets(StrLine,1024,fp); //读取一行,并定位到下一行 CurrentIndex++; } fclose(fp); //关闭文件 return NULL; }//计算文件的总行数(便于后面产生一定范围内的随机数)int SumOfRows(char filename[]){FILE *fp;int sum_rows=1,c;fp=fopen(filename,"r"); if (fp!=NULL)while ((c=fgetc(fp))!=EOF){ if(c=='\n')sum_rows++; }fclose(fp);return sum_rows;}//产生在文件总行数以内的随机数int init_rand(char filename[]){intsum_rows=SumOfRows(filename);int row;int begin=0;srand(time(NULL)); /*初始化随机数种子*/row=rand()%(sum_rows-begin)+begin; /*生成一个[t,sum_rows)区间内的整数*/return row;}int main(){char filename[] = "maxim.txt"; //文件名int row=init_rand(filename);ReadSpeacialLine(row,filename);return 0;}
我的格言集:
第一次:
第三次:
0 0
- C语言 仿LINUX下fortune命令(随机显示格言)
- linux 下c语言调用终端命令
- WindowXp下仿Linux之locate命令
- Linux 下显示目录内容的c语言程序
- C语言实现Linux下的ls命令。
- C语言实现linux下的tail -n <n> 命令
- Linux下用C语言调用Shell命令
- linux下如何用c语言调用shell命令
- Linux下 使用C语言编写who命令
- linux下如何用c语言调用shell命令
- C语言实现的linux下ls命令
- linux下如何用c语言调用shell命令
- linux下如何用c语言调用shell命令
- Linux下more命令C语言实现实践
- linux下如何用c语言调用shell命令
- linux下如何用c语言调用shell命令
- C语言实现的linux下ls命令
- linux下C语言利用命令发送邮件
- c++ 栈的链表实现
- _vstprintf_s_l, vsnprintf 占位符崩溃
- 使用Gradle发布项目到JCenter仓库
- unix网络编程
- A grade marine chinese plywood playform formwork system
- C语言 仿LINUX下fortune命令(随机显示格言)
- 欢迎使用CSDN-markdown编辑器
- ZOJ 3497 Mistwald(矩阵快速幂)
- Caused by: java.lang.NoSuchMethodException: xxx [class android.view.View]
- UML与数据库管理软件推荐
- 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换.将数组中的元素按对应位置放置使得a[i]=i
- Android控制软键盘拉起
- java 及 android环境变量的配置及开发环境搭建
- notifyDataSetChanged 没有效果