社区
C语言
帖子详情
C语言中SQLite3如何处理含有0x00的十六进制字符串?
woodyk
2007-10-16 09:02:06
C语言中SQLite3如何处理含有0x00的十六进制字符串?
例如unsiged char[]={0x12,0x46,0x00,0x18,0x34,0x00,0xF3};
当0x00在字符串中间时总被认为是截止符 '\0 ',导致sprintf只能将0x00前的转成字符串,应该怎样才能将所有数据一起转换,然后存入数据库呢?或者可以不转换直接将上面的数据存入数据库?
谢谢各位大侠~~~~~
...全文
576
20
打赏
收藏
C语言中SQLite3如何处理含有0x00的十六进制字符串?
C语言中SQLite3如何处理含有0x00的十六进制字符串? 例如unsiged char[]={0x12,0x46,0x00,0x18,0x34,0x00,0xF3}; 当0x00在字符串中间时总被认为是截止符 '\0 ',导致sprintf只能将0x00前的转成字符串,应该怎样才能将所有数据一起转换,然后存入数据库呢?或者可以不转换直接将上面的数据存入数据库? 谢谢各位大侠~~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woodyk
2007-10-31
打赏
举报
回复
谢谢楼上各位了,这两天一直忙的晕头转向的,这就结贴!
iambic
2007-10-20
打赏
举报
回复
就io举例,除了sprintf之外还有fgetc、read、fread等,可以读定长数据而不是以0结束。读来的数据是什么根本不会影响你的读取。
Arthur_
2007-10-19
打赏
举报
回复
规则 是双方协定的吧。
干什么都要有个标准哦, 只要你能定标准就行。
woodyk
2007-10-19
打赏
举报
回复
楼上说的给了我一个新的思路,我去试试,谢谢!
Arthur_
2007-10-19
打赏
举报
回复
具体代码 偶给不了,不同的工作方向。
Arthur_
2007-10-19
打赏
举报
回复
struct packet{
int _len;
unsigned char *pcnt;
};
以这样的结构体存入数据库
取的时候按结构体取,要计算好偏移
woodyk
2007-10-19
打赏
举报
回复
那么现在我们不说SQLite,就以SQL数据库为例,
向SQL里存入字符串unsiged char[]={0x12,0x46,0x00,0x18,0x34,0x00,0xF3};
然后再把该字符串的数据完整的取出来,应该如何操作呢?
希望楼上两位能给出代码给小弟解释一下,谢谢!
Arthur_
2007-10-18
打赏
举报
回复
前提:一般都会指定长度或者有特定的结束标志 比如00 ff ff ff
然后循环byte to byte
iambic
2007-10-18
打赏
举报
回复
那要看你的api接口是什么样的。
woodyk
2007-10-18
打赏
举报
回复
楼上两位说的我都考虑过,
但有个问题是,数据库也有存储规则,就是说,即使按照楼上两位的办法把数据存进去了,但取数据时呢??
当你或数据库取到0x00时,会认为字符串已经结束,结果只取到了一部分数据,那么能存不能取就没有意义了.
或者我对数据库的理解不对??请各位大侠指点,谢谢!!
iambic
2007-10-18
打赏
举报
回复
你为什么要用sprintf?无非是格式化字符串吧。如果sprintf不能满足你的要求就自己写一个啊。具体怎么写要看你打算怎么用。
woodyk
2007-10-18
打赏
举报
回复
继续等待中.......
大侠们快来啊..........
woodyk
2007-10-17
打赏
举报
回复
自己顶一下~~
各位大侠,waiting for you!
woodyk
2007-10-17
打赏
举报
回复
base64可以转换休止符 '\0' (0x00)吗?
楼上大侠可否以我给出的字符串为例,详细说明一下,谢谢!
珍惜生命远离CPP
2007-10-17
打赏
举报
回复
base64一下
woodyk
2007-10-17
打赏
举报
回复
在线恭候各位大侠,拜托了~~
woodyk
2007-10-17
打赏
举报
回复
楼上说的详细些,怎么自己格式化??
iambic
2007-10-17
打赏
举报
回复
你为什么要用sprintf?自己格式化就是了。
woodyk
2007-10-17
打赏
举报
回复
现在不是要输出字符,而是要存,取该数据库,
我也曾想过,实在没办法时,我把数据库建成一个字节一个字段,可小弟实在不想走到这一步啊,要吐血的。
各位大侠再想想办法,谢了!!!
继续等.......................
scholar165
2007-10-17
打赏
举报
回复
遍历数组, 单个字符输出可否.
《
C语言
/C++学习指南》数据库篇(MySQL&
sqlite
)
一部使用
C语言
/C++进行 MySQL &
sqlite
数据库开发的教程
十六进制
表示法
一个字节由8位组成。在二进制表示法
中
,他的值域是00000000₂~11111111₂。如果看成十进制整数,他的值域就是0₁₀~255₁₀。两种符号表示法对于描述位模式来说都不是非常方便。二进制表示法太冗长,而十进制表示法与位模式的相互转化很麻烦。替代的方法是以16为基数,或者叫做
十六进制
(hexadecimal)数,来表示位模式。
十六进制
(简写为”hex”)使用数字’0’~’9’以及字符以及字符...
linux c
十六进制
转十进制函数,用Linux/Unix命令把
十六进制
转换成十进制(转)
那天写个脚本,需要把
十六进制
的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用
C语言
什么的容易多了,就一些现成的命令就解决了。先列两种简单的方法:1) echo 自己就能实现,相当简单。不过,不知道如果要从十进制转换回
十六进制
能怎么写。]$ echo $((0xac))1722) printf 也可以哦,
十六进制
和十进制互相转换都没问题]$ printf %d 0xac1...
数据库
sqlite
3之
sqlite
3_exec()第三个参数回调函数的使用
在写这篇文章之前大家先了解我之前写的关于用
c语言
操作
sqlite
3的博客,链接地址如下: https://blog.csdn.net/makunIT/article/details/105192076 关于
sqlite
3_exec的回调函数的知识,我也是在做一个项目
中
学习到的,看了一些博客吧,很多博客,都表达的不是很清楚,所以我想写这篇博客,记录自己的学习过程。大家先了解一下
sqlite
3_exec()函数吧。 1、
sqlite
3_exec() 函数原型 #include <
sqlite
3.h>
linux下
C语言
编程操作数据库(
sqlite
3)
前言:
C语言
中
通过调用
sqlite
的函数接口来实现对数据库的管理(创建数据库、创建表格、插入数据、查询、数据、删除数据等),掌握
sqlite
数据库的语法,以及
sqlite
提供的函数接口,那么在linux下
C语言
编程操作数据库就变得简单了。 Centos系统一般默认是没有安装
sqlite
3数据库的,所以我们要到其官网下载,我下载的版本是
sqlite
-3.6.16.tar.gz [
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章