<textarea readonly="readonly" name="code" class="object-c">
//
// main.c
// 点菜系统
// 实现一个点菜系统,要求运行时随机输出一个菜名,但是文本文件中的菜名数量用参数写入,方便后续可以添加菜单,暂时想到的是使用fgets()来遍历这个文本文件,然后加入计数器,返回菜单的总个数,再使用一个随机数,打印出这个菜单名
// Created by 钱卫 on 15/10/25.
// Copyright © 2015年 钱卫. All rights reserved.
//
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void test(){
char * caidan[] = {"土豆","香蕉","萝卜"};
int num = arc4random_uniform(3);
printf("%s",caidan[num]);
}
void xiecaidan(){
FILE *fp = fopen("/Users/qianwei/Desktop/2.txt","w" );
for (int i=0; i<6; i++) {
char * str = "土豆\n香蕉\n萝卜\n苹果\n橘子\n辣椒";//用换行来实现输入多行字符串
fputs(str, fp);
fclose(fp);
}
}
int main(int argc, const char * argv[]) {
FILE *fp = fopen("/Users/qianwei/Desktop/2.txt","r" );
int flags ;
if (fp!= NULL) {
while (1) {
char caiming[50] ;
fgets(caiming, 50, fp);
flags++;
if(feof(fp)){
break;
}
}
fclose(fp);
}
int num = arc4random_uniform(flags)+1;//使用遍历该文件来获取该文件的长度
FILE *fp1 = fopen("/Users/qianwei/Desktop/2.txt","r" );
if (fp1!= NULL) {
char a[50] ;
for (int i=0; i<num; i++) {
fgets(a, 50, fp1);
}//知道长度后,随机一个数字,再使用循环,来输出该菜单名
printf("%s",a);
fclose(fp1);
}
return 0;
}
</textarea>