吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1353|回复: 10
收起左侧

[求助] c语言文件读取

  [复制链接]
mxwawaawxm 发表于 2021-6-16 18:54
有这样一个需求。想生成几个随机数,打算在编译后的exe文件下弄个配置文件,然后读取生成随机数的相关信息

大致上如此读取配置文件的参数,生成随机数的范围min_num、max_num,随机数的个数times,不生成的数字blacklist_num

然后开始生成随机数

这几个都可以用fscanf函数以类似这样的形式min_num=%d\n来读取,然后判断返回值是否为1,来判断是否正确读取
[C] 纯文本查看 复制代码
(fscanf(fp, "min_num=%d\n", num_info))==1

但最后blacklist_num=45, 60, 70,因为后面的数字不能确定是多少个,那这种要如何读取
我想到的方法是构造一个较大的数组,然后以如下形式读取

[C] 纯文本查看 复制代码
(fscanf(fp, “blacklist_num=%s\n”, num_info))==1

再调用strtok函数切分,分别存进数组里
而且,如果不小心输入的是字母等无效的信息,还得做判断

总感觉很麻烦,请问大家有没有方便些的思路或方法
2021-06-16_184446.png

免费评分

参与人数 1吾爱币 +1 收起 理由
领悟者的涂鸦笔 + 1 你这种情况建议发悬赏

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Cool_Breeze 发表于 2021-6-16 20:02
没有,只能老老实实的写代码!
729 发表于 2021-6-16 21:27
 楼主| mxwawaawxm 发表于 2021-6-16 21:42
729 发表于 2021-6-16 21:27
读取到文件尾就停止读取?

是个方法,但也得把读取到的数字字符串分割成数字数组
要不然后面生成随机数,就没法排除这些数字
还是有些麻烦
无名氏wyw 发表于 2021-6-16 21:46
加入不是文件读取,你会怎么做?
控制台怎么输入就怎么读取,sscanf或者fscanf自行百度
实在不行就委曲求全,改逗号为空格甚至换行符
方法多的是,还不至于到用PHP的地步,某些人还真是闲的没事干(

免费评分

参与人数 1吾爱币 +1 收起 理由
mxwawaawxm + 1 热心回复!

查看全部评分

挑灯看花 发表于 2021-6-17 09:08
加一个不生成的数字的个数
c03xp 发表于 2021-6-17 10:23
都差不多吧,其他方法也不比strtok简单多少,#include <windows.h>的话可以用ini文件,用GetProfileString  GetProfileInt系列读取

免费评分

参与人数 1吾爱币 +1 收起 理由
mxwawaawxm + 1 热心回复!

查看全部评分

 楼主| mxwawaawxm 发表于 2021-6-17 22:43
本帖最后由 mxwawaawxm 于 2021-6-17 22:55 编辑
无名氏wyw 发表于 2021-6-16 21:46
加入不是文件读取,你会怎么做?
控制台怎么输入就怎么读取,sscanf或者fscanf自行百度
实在不行就委曲求 ...

我打算配置文件里,是按这样的格式写参数
[Asm] 纯文本查看 复制代码
;不生成的数字(最多支持20个数字)
blacklist_num=45, 60, 70

最后发现用fscanf读取最后的字符串还行不通。因为fscanf读取到第一个空格,就停止读取,结果只读取到一个数字加逗号45,
难不成得读到blacklist_num=,然后再以fgetc函数依次存进事先定义的字符数组么。

或者用fgets函数么
[C] 纯文本查看 复制代码
(fscanf(fp, “blacklist_num=%s\n”, blacklist_num_str)
无名氏wyw 发表于 2021-6-19 17:31
mxwawaawxm 发表于 2021-6-17 22:43
我打算配置文件里,是按这样的格式写参数
[mw_shl_code=asm,true];不生成的数字(最多支持20个数字)
b ...

那就不用空格嘛,实在不行就像你说的,用fgets之后再用sscanf
 楼主| mxwawaawxm 发表于 2021-7-1 21:40
无名氏wyw 发表于 2021-6-19 17:31
那就不用空格嘛,实在不行就像你说的,用fgets之后再用sscanf

弄了一个半成品,写得很凌乱
https://www.52pojie.cn/thread-1462633-1-1.html
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表