哇赛,这么简单的问题,我都不懂,多多指教`!

煜知搬砖者 2002-11-13 09:22:00
#include<iostream.h>

int main()
{
for(int i=0;i<5;i++)
cout<<"hehe"<<endl;
for(int i=0;i<6;i++)
cout<<"haha"<<endl;
return 0;
}
错误: error C2374: 'i' : redefinition; multiple initialization
D:\temp\作业\test\Cpp1.cpp(5) : see declaration of 'i'
这是怎么回事啊?

还有:我要是加上这个就报错`!

#include<iostream.h>
using namespace std;
int main()
{
for(int i=0;i<5;i++)
cout<<"hehe"<<endl;
for(int i=0;i<6;i++)
cout<<"haha"<<endl;
return 0;
}
error C2871: 'std' : does not exist or is not a namespace

大家指点,我是菜鸟
...全文
42 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
asvaboy1980 2002-12-24
  • 打赏
  • 举报
回复
不知道为什么这样的问题总再被问,我觉得版主应该好好整理一些一些初学者常问的问题。
huangxs 2002-12-24
  • 打赏
  • 举报
回复
跟你的编译器有关
JoshuaLi 2002-12-24
  • 打赏
  • 举报
回复
1, 难道就不能把第二个for循环变量设为i2, i3,...吗?for局部作用域是很
小的细节而已
2, iostream.h 里没有名字空间,如果想试一下名字空间,要用标准库的头文
件iostream
About2Rain 2002-12-22
  • 打赏
  • 举报
回复
vc里也应该可以改的
选项里找找
煜知搬砖者 2002-12-22
  • 打赏
  • 举报
回复
结问题有点晚,很抱歉。
Crystal_arrow 2002-11-14
  • 打赏
  • 举报
回复
1.编译器不同对for(int i=0;i<5;i++)的解释也不同,你的编译器解释为i为在真个程序内的变量。

2.应改为include <iostream>
using namespace std;

3.建议使用dev c++
x2jack 2002-11-14
  • 打赏
  • 举报
回复
这就是vc的bug,它支持c++新标准非常的不好,还是用bc或gcc.
ddmpqcw 2002-11-14
  • 打赏
  • 举报
回复
for(int i=0;i<6;i++)//不能重复定义i;
cout<<"haha"<<endl;


#include<iostream.h>
using namespace std;//iostream.h不是在std namespace里,不能用!
asvaboy1980 2002-11-14
  • 打赏
  • 举报
回复
这个问题太简单了,不要重复定义i就ok了
nothing707 2002-11-14
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;

int main()
{
for(int i=0;i<5;i++)
cout<<"hehe"<<endl;
for(i=0;i<6;i++)
cout<<"haha"<<endl;
return 0;
}
我调试了一下,没有问题
0 error(s), 0 warning(s)
我用的是VC6.0
netxray 2002-11-14
  • 打赏
  • 举报
回复
可以这样
#include <iostream>
using namespace std;
int main()
{
{
for(int i=0;i<5;i++)
cout<<"hehe"<<endl;
}

{
for(int i=0;i<6;i++)
cout<<"haha"<<endl;
}
return 0;
}
1.使用std的头文件(没有".h")的,就可以使用namespace std
2.加括号,缩小i的生存空间
winmains 2002-11-14
  • 打赏
  • 举报
回复
int main()
{
for(int i=0;i<5;i++)
cout<<"hehe"<<endl;
for(int i=0;i<6;i++)
cout<<"haha"<<endl;
return 0;
}
看错误是因为 i 被重复定义,将第二个for中的int 去掉即可。
但从C++的书上来看,这样的定法,i的作用域就在这个for语句中,因此第一个for退出后i即被释放,上面的写法没有错误。可能与编译器有关
lhynew 2002-11-14
  • 打赏
  • 举报
回复
跟编译器有关,好的风格是先声明后使用。
viking7 2002-11-14
  • 打赏
  • 举报
回复
return 0有什么作用啊?
zhengguoshan 2002-11-14
  • 打赏
  • 举报
回复
int main()
{int i;
for(i=0;i<5;i++)
cout<<"hehe"<<endl;
for(i=0;i<6;i++)
cout<<"haha"<<endl;
return 0;
}
很简单呀,你不需要再定义一次
wxj81 2002-11-13
  • 打赏
  • 举报
回复
error C2374: 'i' : redefinition; multiple initialization
这个错误跟编译器有关,VC不能通过,BC就能
rivershan 2002-11-13
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;

int main()
{
for(int i=0;i<5;i++)
cout<<"hehe"<<endl;
for(i=0;i<6;i++)
cout<<"haha"<<endl;
return 0;
}

Win2000 pro SP3+VC6~
结果~
hehe
hehe
hehe
hehe
hehe
haha
haha
haha
haha
haha
haha
kingofvc 2002-11-13
  • 打赏
  • 举报
回复
问题应该是VC下变量的作用域被扩大了
双杯献酒 2002-11-13
  • 打赏
  • 举报
回复
关于名字空间
您可以
(1)
#include<iostream>
using namespace std;
或者
(2)
#include<iostream.h>
但是,不能
(3)
#include<iostream.h>
using namespace std;
kxw 2002-11-13
  • 打赏
  • 举报
回复
你用的是不是TC编译器,它还不支持std
加载更多回复(4)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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