C语音如何读取txt文件中的某一行并赋值给变量?
是这样的,我只学习过C语言,想用C语言做一个抽奖软件。现在我的想法是这样的:产生随机数,因为要链接文件(抽的是姓名),比如现在产生的随机数是5,而我就要将第五行的名字读取...
是这样的,我只学习过C语言,想用C语言做一个抽奖软件。
现在我的想法是这样的:产生随机数,因为要链接文件(抽的是姓名),比如现在产生的随机数是5,而我就要将第五行的名字读取并且赋值给新定义的变量。(每一行是一个姓名)。
我所遇到的困难:如何读取某一行的姓名并且赋值给变量。 展开
现在我的想法是这样的:产生随机数,因为要链接文件(抽的是姓名),比如现在产生的随机数是5,而我就要将第五行的名字读取并且赋值给新定义的变量。(每一行是一个姓名)。
我所遇到的困难:如何读取某一行的姓名并且赋值给变量。 展开
展开全部
最简单的方法,就是一行一行的读,但只取你要的那一行数据就行了。下面是我写的一个简单的例子,抽了三次奖,没有判重复的。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define PEOPLE_NUM 10 //我的文件里有10个名字
void get_prize(FILE* fp, char prize_name[])
{
int num;
int i;
fseek(fp, 0, SEEK_SET);
printf("start...\n");
num = rand() % PEOPLE_NUM + 1;
for(i = 0; i < num; ++i)
{
fgets(prize_name, 32, fp);
}
printf("%s get the prize!!!\n", prize_name);
}
int main()
{
FILE* fp = fopen("name.txt", "r");
int prize_num;
int i;
char prize_name[32] = {0};
srand(time(0));
for(i = 0; i < 3; i++)
{
printf("\n");
get_prize(fp, prize_name);
}
fclose(fp);
return 0;
}
文件是这个样子:
运行截图:
写这种程序你存名字的文件一定要排整齐,这样程序才好处理。祝好运。
更多追问追答
追问
已解决 谢谢。不过我有另一个思路,就是用fgets 先将数组置为空,然后每读取一行都置为空,直到找到应该得到的那一行,这样就不用fseek了,你的答案也很好 ,谢谢!
已解决 谢谢。不过我有另一个思路,就是用fgets 先将数组置为空,然后每读取一行都置为空,直到找到应该得到的那一行,这样就不用fseek了,你的答案也很好 ,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询