PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 读bin能不要char或直接转uint*吗(已解决)
楼主:
Ommm5566
(56天團)
2017-04-16 13:52:13
开发平台(Platform): win or unix
编译器: C++14
额外使用到的函数库(Library Used):std
问题(Question):
今天遇到一个API需要使用者自己先读取好档案
然后传大小和uint32_t*进去
但是读binary档案得到的好像只能是char或string
所以必须转换一次( char* -> void* -> uint32_t*)
1. 能够读档的时候就用uint32_t存吗?
或
2. char*转uint32_t*能不透过void*吗?
喂入的资料(Input): binary file
程式码(Code): http://cpp.sh/8cs7
补充说明(Supplement): 另外一个问题是,这样转换会不会有什么风险在?
作者:
hunandy14
(Charlott.HonG)
2017-04-16 14:10:00
因为你没有使用正确的语法 reinterpret_cast看起来你并不在意混用cstyle,可以直接(uint32_t*)解决
作者:
s25g5d4
(function(){})()
2017-04-16 15:35:00
要注意 little/big endian 问题前阵子刚好跟你做一样的事情 我是把 uint32_t 用 htonl通通转成 big endian 再 reinterpret_cast 写进去不过如果没有 portable 的需求的话可以忽略这个问题
作者:
hunandy14
(Charlott.HonG)
2017-04-16 15:46:00
第一个问题可以这样解决
http://cpp.sh/4kv2n
测试的时候懒得打直接写auto 忘记改回来~明写较好读
作者:
kokal
(细菌)
2017-04-16 22:31:00
c的作法
http://c-faq.com/stdio/extconform.html
作者:
s25g5d4
(function(){})()
2017-04-16 23:36:00
@hunandy14 你的 fileSize 是以 byte 为单位但是你 call resize 是以 element size 为单位吧?
作者:
hunandy14
(Charlott.HonG)
2017-04-16 23:57:00
我直接复制原文的,不晓得有什么不妥呢~阿我直接开txt测试有补一些语法,发现好像不一样顺手改了,没注意到呢~是不一样的不对呀没看好~仔细看写法是一样的~
作者:
Sidney0503
(Sidney0503)
2017-04-17 07:15:00
读字不固定大小stackoverflow.com/questions/4850241binary都是01所以是 char 比uint小读不会有问题 转成unsigned int会有问题
作者:
hunandy14
(Charlott.HonG)
2017-04-19 02:05:00
了解~~
继续阅读
Fw: [问题] 如何发现存取越界? c/c++(V.S.)
moebear
[问题] uva 10382 - Watering Grass
HamalAri
[问题] ifdef 命名规则
forb9823018
[问题] 一直都看不懂extern是干嘛的
OoShiunoO
[问题] 嵌入式特殊语意
TianBonBon
[问题] 回传过大的物件会有问题吗
Zero0910
置底闲聊文(2017/1/1-)
wtchen
[问题] Visual c++ 远端连线mysql
avenger2236
[问题] Timer1
GooLoo
Re: [问题] 请教一题c的题目
hn12404988
Links
booklink
Contact Us: admin [ a t ] ucptt.com