首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

,为什么已经定义了i之后,还会说i是未声明的标识符

2013-11-08 
求助,为什么已经定义了i之后,还会说i是未声明的标识符?我下载的C++自动生成word报告文档的代码(感谢a77777

求助,为什么已经定义了i之后,还会说i是未声明的标识符?
我下载的C++自动生成word报告文档的代码(感谢a7777700000的资源),调试之后,总会报错如下图
,为什么已经定义了i之后,还会说i是未声明的标识符

代码如下:

void table1()
{
     sqlstr="USE report_generator;";
 mysql_query(&mydata,sqlstr.c_str());
 sqlstr="SELECT * FROM template_statistics;";
 MYSQL_RES *result = NULL;
 if(0==mysql_query(&mydata,sqlstr.c_str()))
     {
  result = mysql_store_result(&mydata);
      char *b, *c;int count,jj=0,cu=1;
  CString r;
          char j[1000],m[100];
  unsigned int fieldcount = mysql_num_fields(result);
  MYSQL_ROW row = NULL;
  row = mysql_fetch_row(result);
  setlist(3,1);
          b=row[6];
  for(int i=0;*(b+i)!='\0';i++)
  {j[i]=*(b+i);}
 j[i]='\0';
 while(cu)
 {
 count=0;
                  for(;j[jj]!='|';jj++)
  {
  if(j[jj]=='\0') {cu=0;break;}
  if(j[jj]=='\n');
  else m[count++]=j[jj];
  }
  jj++;
  m[count]='\0';
 c=m;
 typetext(0,c);
 para();
 }
  wordRange = wordSelection.GetRange();
                  ListFormat hhh = wordRange.GetListFormat();
                  hhh.RemoveNumbers(v1);
  
 }
 else
 {
  mysql_close(&mydata);
  return ;
 }
}




请教各位论坛大神了,拜谢!
[解决办法]
for(int i=0;*(b+i)!='\0';i++)
{
j[i]=*(b+i);
}
j[i]='\0';

在for语句中定义的局部变量i只在循环体内有效
如果使用VC6.0,i在循环体外也有效,这是违反语言标准的BUG
[解决办法]
建议楼主学学编码规范,当你的代码对齐了,错误就一目了然了。
[解决办法]
c++块中定义的变量,只有块里面可见,在块外是看不见的!所谓块一般是指{}包围起来的范围,但for,while参数也属于块
[解决办法]
楼主直接从vc6的工程拷过来的代码吧?
[解决办法]
全选,按Alt+F8

热点排行