CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

这个错误什么意思?!

楼主vivalyt(感冒少抽烟)2004-12-03 11:48:08 在 C/C++ / C++ 语言 提问

编译下面代码时出现这两个错误:  
  error1:name   lookup   of   'i'   changed   for   new   ANSI   'for'   scoping  
  error2:   using   obsolete   bingding   at   'i'    
   
  这两个错误是什么意思?怎么解决?!  
   
  代码如下:  
  #include   <iostream.h>  
  #include   <iomanip.h>  
   
  void   printHeader(   int   );  
   
  int   main()  
  {  
        printHeader(   5   );  
         
        return   0;  
  }  
   
  void   printHeader(   int   size   )  
  {  
            cout   <<   "\nSubscripts:\n";  
            for   (   int   i   =   0;   i   <   size;   i++   )                   //error2      
                  cout   <<   setw(   3   )   <<   j   <<   '   ';  
   
            cout   <<   '\n';  
   
            for   (   i   =   1;   i   <=   4   *   size;   i++   )                 //error1  
                  cout   <<   '-';  
   
            cout   <<   endl;  
  } 问题点数:10、回复次数:10Top

1 楼MCR()回复于 2004-12-03 11:54:00 得分 0

cout   <<   setw(   3   )   <<   j   <<   '   ';   //   是这里错吧,将j改成i就行了  
  Top

2 楼pcboyxhy(-273.15℃)回复于 2004-12-03 11:55:05 得分 0

j哪来的Top

3 楼kypfos(不在寻梦)回复于 2004-12-03 11:56:45 得分 0

就是变量没有声明啊,写成i就好啦Top

4 楼KingCrane(子鹤)回复于 2004-12-03 11:57:43 得分 0

error   C2065:   'j'   :   undeclared   identifierTop

5 楼vivalyt(感冒少抽烟)回复于 2004-12-03 11:57:50 得分 0

j是我后来不小心改错了,不是那个问题,换成i或者全部i换成j都一样有这个问题啊!  
  怎么回事?Top

6 楼MCR()回复于 2004-12-03 12:03:50 得分 0

将j改为i后输出的结果:  
   
  Subscripts:  
      0       1       2       3       4  
  --------------------  
  Press   any   key   to   continueTop

7 楼greenteanet(扎扎实实打基础,保持一颗平常心。)回复于 2004-12-03 12:29:36 得分 5

#include   <iostream.h>  
  #include   <iomanip.h>  
   
  void   printHeader(   int   );  
   
  int   main()  
  {  
        printHeader(   5   );  
         
        return   0;  
  }  
   
  void   printHeader(   int   size   )  
  {  
            cout   <<   "\nSubscripts:\n";  
            for   (   int   i   =   0;   i   <   size;   i++   )                   //error2      
                  cout   <<   setw(   3   )   <<   i   <<   '   ';   //   将这个j改为i  
   
            cout   <<   '\n';  
   
            for   (   i   =   1;   i   <=   4   *   size;   i++   )                 //error1  
                  cout   <<   '-';  
   
            cout   <<   endl;  
  }  
   
  以上程序在VC6.0下调试通过,输出结构如下Subscripts:  
      0       1       2       3       4  
  --------------------  
  Press   any   key   to   continue  
   
  根据楼主的程序,我看这个输出结果是正确的Top

8 楼vivalyt(感冒少抽烟)回复于 2004-12-03 12:42:12 得分 0

greenteanet(扎扎实实打基础,保持一颗平常心。)    
  你的结果是对的。  
  那么看来是我的编译器有问题了?!  
  我用C-Free和Dev   C++编译都同样产生这个问题,不理解那两句错误提示,难道是“ANSI”里面有文章?  
  有谁知道敬请指教啊!!!!Top

9 楼ypyao85(云)回复于 2004-12-03 13:37:32 得分 0

作用域,int   i;写到外面去Top

10 楼kypfos(不在寻梦)回复于 2004-12-03 13:51:10 得分 5

for(int   i=0;;){}  
   
  在vc中认为i的作用域是在大括号之外  
  而标准C/C++中i的作用域只在大括号之中  
   
  Vc不符合标准的事时有Top

相关问题

  • 这个错误是什么意思?
  • 这个错误什么意思?
  • 这个错误什么意思?
  • 这个错误是什么意思呢?
  • 这个错误是什么意思呢?
  • 这个错误是什么意思?
  • 这个错误是什么意思?
  • 这个错误什么意思啊
  • 这个错误什么意思?
  • 这个错误是什么意思?

关键词

  • 代码
  • 错误
  • 意思
  • printheader
  • void printheader
  • cout
  • main
  • include
  • return0
  • size

得分解答快速导航

  • 帖主:vivalyt
  • greenteanet
  • kypfos

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo