社区
C++ Builder
帖子详情
急在线等待----如何将C中的char[]串转换成BCB中AnsiString
libamboo
2002-09-06 08:13:25
我用fread(&a,sizeof(char),1,fp)从一个文件中读出一个字符串,想将串转换成BCB中AnsiString 类型,并付给此类型的一个变量,我上边的a定义的是一个char a[],存到文件中的,非常着急,请高手赐教,谢谢
...全文
118
23
打赏
收藏
急在线等待----如何将C中的char[]串转换成BCB中AnsiString
我用fread(&a,sizeof(char),1,fp)从一个文件中读出一个字符串,想将串转换成BCB中AnsiString 类型,并付给此类型的一个变量,我上边的a定义的是一个char a[],存到文件中的,非常着急,请高手赐教,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
christopher_hp
2002-09-09
打赏
举报
回复
char a[]="..."
char *p=a;
AnsiString temp=AnsiString(p);
blazeyan
2002-09-08
打赏
举报
回复
首先,你的a是不是读到了你想要的内容?如果a中有不可打印的字符,就可能得不到正确的String。
极速小王子
2002-09-08
打赏
举报
回复
AnsiString string ;
string。sprintf(“%s”,a);
cdws222
2002-09-08
打赏
举报
回复
=
libamboo
2002-09-08
打赏
举报
回复
为什么用用StrPas函数,不能将从char a[]中读出的字符串转换成ansistring字符串
libamboo
2002-09-08
打赏
举报
回复
我想请问的是如何用fwrite将char a[10]中的字符串存到二进制文件中
libamboo
2002-09-08
打赏
举报
回复
我想问的是如何用ferite将char a[10]中的字符串存到二进制文件中
xiaoyu
2002-09-08
打赏
举报
回复
char xxx[]="ddd";
Ansistring(xx);
libamboo
2002-09-07
打赏
举报
回复
我保存的是二进制文件,我想问一下,为什么将char a[]换成int a,上面写进去的数与读出数相同,而用char a[]写进去的串和读出的串与我想村的串不同呢?用fwrite将char a[]的字符串保存到文件中应该怎样写?
vixkywx
2002-09-07
打赏
举报
回复
楼上对
blazeyan
2002-09-07
打赏
举报
回复
对了,你的写法可能有问题,应该
fread(a,sizeof(char),l,fp);
或者
fread(&a[0],sizeof(char),l,fp);
a本身就是一个地址,&a就是地址的地址了。不直到我说得对不对。
blazeyan
2002-09-07
打赏
举报
回复
首先,你的文件是不是你自己生成的?你保存的是文本内容还是二进制?如果你本身是字符串内容就不要保存为二进制文件,fopen的时候用“wt”。写入的时候还是要用char [],至于读取,你先使用char []读出来,可以用fgetc单个字节的读取直到feof,如果你保存的时候是固定格式的,可以使用你上面的写法,l 为你固定的长度,跟sizeof(char)没有关系。然后你可以
String s = StrPas(a);
用这种办法,跟踪一下,先看看读出来的a是不是正确,再看s是否正确,确定毛病出在什么地方。其实保存文件的格式很重要!
试试看吧。
whitelion
2002-09-06
打赏
举报
回复
确实,这个地方经常出错,是自己定义文件结构,最好使用txt文件
Hawk_sun
2002-09-06
打赏
举报
回复
比如你要将ComBox1中的Text(字符串)写入文件,然后在另一个程序中从文件里把那个串读入TEdit:
存入:
ComBox1->Text->SaveToFile("Test.txt");
读取:
Edit1->Text->LoadFromFile("Test.txt")
lifuming
2002-09-06
打赏
举报
回复
up
libamboo
2002-09-06
打赏
举报
回复
那char a[]这样的串存储的时候怎样存到文件中,为什么用上述方法存的的整型数据,读回的时候就是我存进到文件中的数,从文件中读出一个串应该怎样写,我指的是句法。
libamboo
2002-09-06
打赏
举报
回复
那char a[]这样的串存储的时候怎样存到文件中,为什么用上述方法存的的整型数据,读回的时候就是我存进到文件中的数,从文件中读出一个串应该怎样写,
Hawk_sun
2002-09-06
打赏
举报
回复
补充:fread(&a,sizeof(char),1,fp)好像只是从文件中读一个char,不是串啊!
实在不行你用fscanf试试!直接从文件输入参数,不要显示地转换了!
aawolf
2002-09-06
打赏
举报
回复
从文件中读出的char *可以正常显示吗?我估计可能是二进制文件出的问题。
Hawk_sun
2002-09-06
打赏
举报
回复
这样试试看:
1。存储的时候你使用AnsiString 的c_str()方法把AnsiString转换成char *类型。
2。读入的时候直接可以这样:
char *s='。。。';//something you've read from a file!
AnsiString str=AnsiString(s);
能还原麽?
另外:涉及字符串长度 的问题你不要用sizeof,你用StrLen()试试!
加载更多回复(3)
C++ Builder
中
的类型
转换
C++ Builder
中
的类型
转换
,非常实用。很全。各种类型都有实例。
BCB
中
char
类型与
AnsiString
类型的相互
转换
1、String——>
char
: String S="abc"; int Length=S. Length();
char
*Buffer= new
char
[Length]; Buffer=S.c_str(); 结果: Buffer[0]='a' , Buffer[1]='b', Buffer[2]='c' 2、
char
BCB
中
AnsiString
类方法小结
AnsiString
类是
BCB
中
最常见类之一,了解它对以后深入学习
BCB
大有帮助。 介绍
AnsiString
类之前,先要介绍一些背景知识。VCL(Visual Component Library 可视化组件库)大量利用Pascal长字
串
数据类型,几乎所有基于文本...
C++Bulder之字符数组
转换
成
AnsiString
类型
情况一:
char
tmp[10] = "abcdefg";
AnsiString
buffer; buffer = tmp; ...
char
tmp[10] ="\0\0\4\4";...
AnsiString
buffer;...情况一
转换
正常,情况二
转换
后,buffer数据...经调试发现,不管是字符
串
还是字符数组在
转换
成
A
BCB
之间各种数据类型之间的
转换
将整数
转换
为
AnsiString
字符
串
,函数原型如下:
AnsiString
__fastcall IntToStr(int Value); IntToHex 将整数
转换
为十六进制字符
串
,函数原型如下:
AnsiString
__fastcall IntToHex(int Value, int Digits); eg: ...
C++ Builder
13,824
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章