急在线等待----如何将C中的char[]串转换成BCB中AnsiString

libamboo 2002-09-06 08:13:25
我用fread(&a,sizeof(char),1,fp)从一个文件中读出一个字符串,想将串转换成BCB中AnsiString 类型,并付给此类型的一个变量,我上边的a定义的是一个char a[],存到文件中的,非常着急,请高手赐教,谢谢
...全文
118 23 打赏 收藏 转发到动态 举报
写回复
用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)

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧