我想要一个代码来读取包含一些问题的文本文件,然后随机选择一个问题并显示给用户,直到所有问题都显示出来;
例如问题:
你多大了?
你是哪里人?
现在,这是我的代码,但我不知道继续。
int main()
{
int i = 0, line = 5;
char ch[1000];
char *str;
time_t t;
srand((unsigned) time(&t));
FILE *myfile;
myfile = fopen("question.txt","r");
if (myfile== NULL)
{
printf("can not open file \n");
return 1;
}
while (fgets(ch,1000, myfile)!=NULL)
printf("%s",ch);
fclose(myfile);
line = 5;
int counter;
for( i = 0 ; i < line ; i++ ) {
counter = rand() % 6;
printf("first question: %s\n", ch[counter]);
}
return 0;
}
我该如何继续?
答案 0 :(得分:0)
我将enitire文件读入一个连续的内存块,然后计算文件中的行数(在内存中),然后创建一个指针数组 - 指向每一行的一个指针并更改所有{ {1}}到'&#39; \ 0``s。
最后,我以随机顺序从数组中选择指针(使用基本的混洗算法)并显示指向用户的问题。
如果问题列表太大而无法记忆,那么用户可能会在回答这些问题之前入睡,所以我假设不会发生。