请求帮助

touchup 2003-09-13 11:58:06
此程序是把文本文件的信息提取出来,每27个字节是一条信息,把每条信息的头
11个字节插入到数据库中 ,但程序在cb6.0中编译,显示这样的错误。
//源程序
typedef struct info_num
{
char phonenum[11];
char status[2];
char datetime[14];
}INFO; //定义一个结构体
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{

INFO InBuff;

FILE * fpsrc = fopen("source.txt","r");
while(!feof(fpsrc))
{
fread(&InBuff,sizeof(INFO),1,fpsrc);
if(INFO.status>=1&&INFO.status<=5)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into phone(mobilephone,status) values('"+INFO.phonenum+"','"+INFO.status+"')");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
}
}
fclose(fpsrc);
}



//错误信息
improper use of typedef 'INFO'
improper use of typedef 'INFO'
improper use of typedef 'INFO'
improper use of typedef 'INFO'
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thp 2003-09-13
  • 打赏
  • 举报
回复
typedef struct info_num
{
char phonenum[11];
char status[2];
char datetime[14];
}INFO;

这里定义错误。好像应该是这样吧:(倒数第二个分号不要)记不太清了,自己试一下吧。
typedef struct info_num
{
char phonenum[11];
char status[2];
char datetime[14]
}INFO;
klfbaby 2003-09-13
  • 打赏
  • 举报
回复
是不是缺少
InBuff = new INFO
还没给结构体分配空间
GeoPhoenix 2003-09-13
  • 打赏
  • 举报
回复
代码修改如下

if(InBuff.status>=1 && InBuff.status<=5)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into phone(mobilephone,status) values('"+InBuff.phonenum+"','"+InBuff.status+"')");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
}
}

thp(半天云)的说法不对,结构体的定义后面必须有;ThinkX(思·秋天的树·求职中)说的才是要害
yuhaiping 2003-09-13
  • 打赏
  • 举报
回复
楼上两位说的综合起来
ThinkX 2003-09-13
  • 打赏
  • 举报
回复
if(INFO.status>=1&&INFO.status<=5)

这行错误,INFO是一个类型名称,不是一个实例变量的名称。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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