C++中怎么将二进制数据转换成ASC码

我有一组double型的数组,要将他存到txt文件中,但是C++中存的形式是二进制,txt中显示怎么是按ASC码显示的,比如C的数据是97,存到txt中却显示为a,怎么才... 我有一组double型的数组,要将他存到txt文件中,但是C++中存的形式是二进制,txt中显示怎么是按ASC码显示的,比如C的数据是97,存到txt中却显示为a,怎么才能存啊? 展开
 我来答
lifei602
推荐于2016-07-06 · TA获得超过186个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:129万
展开全部
你存在txt文件中的已经是二进制文件了,你打开txt文件时,操作系统会自动对这个二进制数据进行编码转换(如果你安装的是中文操作系统的话一般会用unicode编码转换,英文操作系统的话会用ASC编码转换),所以你看到的是系统转换后的样式。
如果你想在打开txt文件时看到的是二进格式的数字,那你只有先把double型数组转换成字符型然后保存到文件中就可以了!
追问
怎么转换啊?如果用ecvt函数的话不能保存小数点啊
追答
你如果只是想存double数组中的数据的话,很简单,只要循环把这个数组中的每一个double型变量依次保存到文件中就可以了啊!
是不是你写文件时把double型变量又转换成其它格式了,记得存数据时要用%d格式。
或者你直接对整个数组变量进行写文件保存?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
h_l_q
2011-05-16 · TA获得超过1262个赞
知道小有建树答主
回答量:686
采纳率:0%
帮助的人:614万
展开全部
你要存的是十进制数据吗?
dec 格式化为十进制数值数据 输入和输出
endl 输出一个换行符并刷新此流 输出
ends 输出一个空字符 输出
hex 格式化为十六进制数值数据 输入和输出
oct 格式化为八进制数值数据 输入和输出
setpxecision(int p) 设置浮点数的精度位数 输出
比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输
出:file1<<setpxecision(5)<<3.1415926。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
完满还甜美丶彩霞9062
2011-05-16 · TA获得超过743个赞
知道答主
回答量:439
采纳率:100%
帮助的人:0
展开全部
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 100

int main()
{
int i,j,n,len;
char st[]="48494A4B4C4D4E4F";
char st2[N];
int char2num(char ch);
for (i=0;i<N;i++)
st2[i]=0;

len=strlen(st);
j=0;
for (i=0;i<len;i+=2)
{
n=char2num(st[i])*16+char2num(st[i+1]);
st2[j++]=n;
}
printf("st2=%s",st2);

getch();
return 0;
}

int char2num(char ch) /*将字符转成数字*/
{
if (ch>='a')
return ch-'a'+10;
else if (ch>='A')
return ch-'A'+10;
else
return ch-'0';
}

/*我转出来的跟你的结果有点不一样,你的结果应当错了。*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhtzu
推荐于2016-08-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4512万
展开全部
将double、int这样的数值型数据,直接写入文件,形成的是数据文件,其数据格式是按照内存中实际存储方式来写入的,不是文本方式。
如果希望将数值类型保存为可视化的文本文件,你需要将数值格式化为字符串,再写入文件就可以了(也可以直接使用格式化函数,如fprintf)。
写一个double类型数组,你可以参考一下代码:
char tmp[40];
double darray[10];
FILE *fp;
fp=fopen("dat.txt","w");
for(int i=0;i<10;i++){
sprintf(tmp,"%lf \n",darray[i]);//注意,高版本VS中要用sprintf_s

fwrite(tmp,strlen(tmp),1,fp);

}
fclose(fp);
数值型数据在内部存储中都是以二进制方式保存的,这样方便进行数值运算,在显示和保存的时候,如果希望变成可阅读的十进制数据,C/C++提供了很多格式化的方法,上述代码只是其中一例,各种格式化的概念基本一致,需要注意的是各个类型数据的格式化参数不同,例如double类型要用%lf或%g,而int类型要用%d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式