为什么后者不能 using namespace std;
找了半天也没找到,using namespace std;这个我是在霍登的<<c++入门经典>>上学到的
#include<iostream.h>
#include<time.h>
//using namespace std;
void main()
{
int i;
int tmp[7];
srand(time(0));
for(int j=0,z=0;j<7;j++,z=0)
{
i=rand()%35;
i++;
while(z<=j)
{
while(tmp[z++]==i)
{
i=rand()%35;
z=0;}
}
tmp[j]=i;
cout<<tmp[j]<<endl;
}
}
什么改成了传统格式就有错误了?
D:\VC++6.0英文标准版\liao5930\Cpp1.cpp(8) : error C2065: 'srand' : undeclared identifier
D:\VC++6.0英文标准版\liao5930\Cpp1.cpp(11) : error C2065: 'rand' : undeclared identifier
Error executing cl.exe.
Cpp1.obj - 2 error(s), 0 warning(s)
这是正确的
#include<iostream>
#include<time.h>
using namespace std;
void main()
{
int i;
int tmp[7];
srand(time(0));
for(int j=0,z=0;j<7;j++,z=0)
{
i=rand()%35;
i++;
while(z<=j)
{
while(tmp[z++]==i)
{
i=rand()%35;
z=0;}
}
tmp[j]=i;
cout<<tmp[j]<<endl;
}
}
目的是35选7,同时组不相同,数不相同
#include<iostream.h>
#include<time.h>
#include <stdlib.h>
//using namespace std;
void main()
{
int i;
int tmp[7];
srand(time(0));
for(int j=0,z=0;j<7;j++,z=0)
{
i=rand()%35;
i++;
while(z<=j)
{
while(tmp[z++]==i)
{
i=rand()%35;
z=0;}
}
tmp[j]=i;
cout<<tmp[j]<<endl;
}
}
什么改成了传统格式就有错误了?
D:\VC++6.0英文标准版\liao5930\Cpp1.cpp(8) : error C2065: 'srand' : undeclared identifier
D:\VC++6.0英文标准版\liao5930\Cpp1.cpp(11) : error C2065: 'rand' : undeclared identifier
Error executing cl.exe.
Cpp1.obj - 2 error(s), 0 warning(s)
这是正确的
这于这个为什么正确,那是因为iostream中包含的头文件中包含了stdlib.h文件
稍微查了一下,包含关系如下:
->#include <istream> -> #include <ostream> -> #include <ios> -> #include <streambuf> -> #include <xlocnum> -> #include <cstdlib> -> #include <stdlib.h>
#include<iostream>
#include<time.h>
using namespace std;
void main()
{
int i;
int tmp[7];
srand(time(0));
for(int j=0,z=0;j<7;j++,z=0)
{
i=rand()%35;
i++;
while(z<=j)
{
while(tmp[z++]==i)
{
i=rand()%35;
z=0;}
}
tmp[j]=i;
cout<<tmp[j]<<endl;
}
}
目的是35选7,同时组不相同,数不相同
[此贴子已经被作者于2006-5-26 11:59:29编辑过]
呵呵,你就直接指出我的错误算了,我是这么理解的
书上说,将所有的类都包含在标准空间std中,所以要用std::或则using namespace std;宏例外