怎样向文件一位一位的写入?或将01序列的字符串转换为二进制中位
时间:2011-12-12
来源:互联网
怎样将他们变成二进制后写入文件。
比如“00000000000000000000000000000000000000001”对应int 型1的位,怎样将他们写入文件。
比如01字符序列(C风格字符串)中每32个字符转化为4字节int 数据后写入文件。
原始字符串中每个0,1占一个字节(8位),我想要每个0或1只占一位。
怎样才能做到呢?
涉及到文件IO,所以要高效。
作者: chaoplusplus 发布时间: 2011-12-12
#include <stdlib.h>
char s[]="00000000000000000000000000000001"
"00000000000000000000000000000010"
"00000000000000000000000000000011";
char *p;
char *ep;
char c;
unsigned long v;
FILE *f;
void main() {
f=fopen("data.bin","wb");
p=s;
while (1) {
if (0==*p) break;
ep=p+32;
c=*ep;
*ep=0;
v=strtoul(p,&ep,2);
fwrite(&v,sizeof(v),1,f);
*ep=c;
p+=32;
}
fclose(f);
}
作者: zhao4zhong1 发布时间: 2011-12-12
早知道有stroul这个函数我还用bitset 和string转来转去。
不过stroul函数转化出来的二进制数,大小有限制。bitset却可以很长
#include <stdio.h>
#include <stdlib.h>
char s[]="00000000000000000000000000000001"
"00000000000000000000000000000010"
"00000000000000000000000000000011";
char *p;
char *ep;
char c;
unsigned l……
作者: chaoplusplus 发布时间: 2011-12-12
作者: chaoplusplus 发布时间: 2011-12-12
作者: Lactoferrin 发布时间: 2011-12-12
由二进制得到01序列,有函数没?
作者: chaoplusplus 发布时间: 2011-12-12
作者: Lactoferrin 发布时间: 2011-12-12
itoa
作者: chaoplusplus 发布时间: 2011-12-12
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28