C++builder中实现保存文件的问题?

小弟需要将2维数组按照下面的格式保存为文本文件:例如(1,1)保存为[aa];其中整数1对应a,2对应b,如此类推。写的代码如下:chartemp1,temp2;Ansi... 小弟需要将2维数组按照下面的格式保存为文本文件:
例如(1,1) 保存为[aa];
其中整数1对应a,2对应b,如此类推。写的代码如下:
char temp1,temp2;
AnsiString GoMem[400];
int GoNum=0;
temp1=int (x+96);
temp2=int (y+96);
GoTemp="B["+temp1+temp2+"];";
GoMem[GoNum]=GoTemp;
GoNum++;
GoTemp="";
temp1='';
temp2='';
保存文件的代码如下:

FILE *fp;
String s="";
if(SaveDialog1->Execute())
{
s=SaveDialog1->FileName;
if(!(UpperCase(ExtractFileExt(s))==".SGF"))
s+=".SGF";
fp=fopen(s.c_str(),"w");
if(!fp)
{
MessageBox(Handle,"无法创建文件!磁盘写保护或空间不足!","SK五子棋",MB_OK);
return;
}
// 写入文件.

for(int i=0;i<GoNum;i++)
{

fprintf(fp,GoMem[i]);
}
fclose(fp);
现在的问题是调试报错,
1是 [C++ Error] Unit1.cpp(678): E2085 Invalid pointer addition
2是 [C++ Error] Unit1.cpp(682): E2129 Character constant too long (or empty)
请教该如何改正?
展开
 我来答
独落长秋
2009-06-07 · TA获得超过1535个赞
知道小有建树答主
回答量:606
采纳率:0%
帮助的人:680万
展开全部
先读到memo内 然后savetofile
直接一些

先放一个Memo控件叫Memo1吧

//有多少个就循环着加到Memo1里
Memo1->Lines->Add("[aa]"); //加多少个数组放到循环里

把所有的数组都加到Memo1后
Memo1->Lines->SaveToFile("C:\\文件名.后缀名");

下次再读出来
Memo1->Lines->loadfromfile("C:\\文件名.后缀名");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhjiemm
2009-06-07 · TA获得超过2643个赞
知道大有可为答主
回答量:1834
采纳率:75%
帮助的人:705万
展开全部
试试改动:

1,
GoTemp="B["+AnsiString(temp1)+AnsiString(temp2)+"];";

2,
temp1=' ';
temp2=' ';

temp1=0;
temp2=0;

3,

fprintf(fp,"%s",GoMem[i].c_str());
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Laplas
2009-06-07 · TA获得超过1万个赞
知道大有可为答主
回答量:2680
采纳率:50%
帮助的人:2425万
展开全部
GoTemp="B["+temp1+temp2+"];"; 不对,应该是
GoTemp=String("B[")+temp1+temp2+"];";
因为char* 没有 + 的操作,而String有。

temp1=''; 不对。temp1是char, 是数值,一定要有值。
不像字符串可以是空串,‘’之间一定要有东西!
比如 temp1='\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kondykuang
2009-06-07 · TA获得超过138个赞
知道小有建树答主
回答量:417
采纳率:0%
帮助的人:249万
展开全部
用string str 格式化 (a,b)到字符串中,str。Fomat(“【%d%d】”,a,b) 然后writefile();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式