怎么随机读出

ranxufeng 2012-11-02 12:22:39
float shuchu(char *p,char *q);
int main()
char str1[1000];
char str2[1000];
int count=0,flag=0;
FILE *fp = NULL;
fp = fopen("xieru.txt", "r");
if(fp==NULL){
printf("文件打开失败:\n");
}
fscanf(fp,"%s",str2);
printf("%s",str2);
printf("\n请原样输出打开文件的内容:\n");
scanf("%s",str1);
if(strcmp(str2,str1)==0)
printf("\n");
else
printf("\n");
float A=shuchu(str2,str1)*100;
printf("你输入的正确率为:\n%f%%\n",A);
fclose(fp);
return 0;
}

float shuchu(char *p,char *q)
{
int p1=strlen(p);
float count =0;
while(*p!='\0'&&*q!='\0')
{
if(*p==*q)
{
count++;
}
p++;
q++;
}
float d=float (count)/p1;
return d;
}


怎么能随机读出xieru.txt读出一个字符串??】


求教
...全文
165 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kuovane 2012-11-02
  • 打赏
  • 举报
回复
i = rand()%MAX_STR_NUM;
for(;i>=0; i--)
{
fscanf(fp,"%s",str2);
}
fseek(fp,0,SEEK_SET)
这种情况是你自己知道文件里最多有多少个字符串的情况;
ForestDB 2012-11-02
  • 打赏
  • 举报
回复
fseek()
rand()
ranxufeng 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
string[XXX]把文件独到一个string[XXX]中,然后
srand( (unsigned)time( NULL ) );
rand() 计算得到索引(0 ~ XXX - 1)
[/Quote]
string[XXX]??是计算个数吗 ??
刚开始学还有不清楚,只知道这可以是一个<string.h>
函数可以进行字符串复制,比较,查找,和转换。

string[XXX]把文件独到一个string[XXX]中是读到函数中计算字符串的个数吗?
ranxufeng 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

首先,把所有字符串读入到内存内,总数为n个
然后,获取一个随机数,对n求余
最后,根据所得余数(0~n-1)输出对应字符串
[/Quote]

成功了 谢谢了
Eleven 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
二楼 这个只能读出最后一个字符串 不是随机的
[/Quote]
把文件独到一个string[XXX]中,然后
srand( (unsigned)time( NULL ) );
rand() 计算得到索引(0 ~ XXX - 1)
ranxufeng 2012-11-02
  • 打赏
  • 举报
回复
不知道文件里最多有多少个字符串的情况??
swordtan 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

首先,把所有字符串读入到内存内,总数为n个
然后,获取一个随机数,对n求余
最后,根据所得余数(0~n-1)输出对应字符串
[/Quote]

++
baichi4141 2012-11-02
  • 打赏
  • 举报
回复
首先,把所有字符串读入到内存内,总数为n个
然后,获取一个随机数,对n求余
最后,根据所得余数(0~n-1)输出对应字符串
ranxufeng 2012-11-02
  • 打赏
  • 举报
回复
二楼 这个只能读出最后一个字符串 不是随机的
ranxufeng 2012-11-02
  • 打赏
  • 举报
回复
MAX_STR_NUM

fscanf(fp,"%s",str2);就是读出的字符串啊
ranxufeng 2012-11-02
  • 打赏
  • 举报
回复
文件中如果是一篇文章 在文章中随机读出一些字符串??

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧