OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2952|回复: 3

怎么将sd卡中txt文件的数据分割空格,存成一维数组?用fscanf或sscanf可以吗?

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-7-6
在线时间
40 小时
发表于 2019-7-12 22:54:11 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 wjqqq 于 2019-7-16 15:46 编辑

txt原始数据

txt原始数据

现在已经把txt存在了sd卡中,数据之间用空格分开,但是fatfs库里只有打开、读文件这种函数,所以只能把数据以字符串的形式读进来,不能存成一位数组。
c语言里一般用fscanf能很容易做这个事,但是fscanf函数第一个输入参数是FILE *类型,而stm32的fatfs库里用的是FIL*类型,好像不能用。

使用sscanf切割比较短的数据是可以的:
360截图172105019713685.png
这样可以把四个数据存到长度为4的一位数组中,但是这样数据多达几千几万的话,肯定就不行了。


因此我在for循环中使用sscanf,可能是以前没用过所以在哪里出错了吧,读四个数据,结果是数组每个元素都是第一个数据:
360截图176709197810883.png
所以想请问大家,该怎么用sscanf或fscanf完成大量数据切分存成数组呢?或是有其他方法也行。
更新:
已经找到使用sscanf完成分割存为数组功能的方法,没有fscanf好用,必须得先把数据读到缓冲区,朋友们有其他想法也可以告诉我。




360截图18460318719057.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-7-13 02:39:38 | 显示全部楼层
回复

使用道具 举报

13

主题

96

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3225
金钱
3225
注册时间
2016-5-7
在线时间
531 小时
发表于 2019-7-16 12:27:29 来自手机 | 显示全部楼层
你这个图片里的位数都是一样的,如果每行的字节数都一样,那就每次读一行字符串,然后使用sprintf格式化成数字就可以处理保存了
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-7-6
在线时间
40 小时
 楼主| 发表于 2019-7-16 15:39:33 | 显示全部楼层
不同 发表于 2019-7-16 12:27
你这个图片里的位数都是一样的,如果每行的字节数都一样,那就每次读一行字符串,然后使用sprintf格式化成 ...

前边的一样,后边的非常小,比如-6.2774e+66
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 08:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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