初学C++,使用vs2005写了按照教程写了一个简单的测试程序,在编译的时候报错“Cannot open include file: 'iostream.h': No such file or directory”。


 

旧的源文件如下:


1. #include "MyArea.h" 
2. #include <iostream.h> 
3.   
4. void
5. double
6. "please enter tow number: "<<endl;  
7.     cin>>width>>length;  
8.   
9. "area of rectangle is "<<rect(width,length)<<endl;  
10.       
11. double
12.   
13. "please enter radius: "<<endl;  
14.     cin>>radius;  
15.   
16. "area of circle is "<<circle(radius)<<endl;  
17.   
18. }


 

一直报上面的错误,无法通过编译。遂放狗开始搜索。。。。。

得到如下的原因和解决方法:

-----------------------------------------

#include <iostream.h > 是VC6以前的写法。

#include <iostream >
using  namespace  std;

这个是标准库的写法。标准库把这些个文件都放到std这个namespace里面了。

可以到VC/include看看和VC6.0的区别,是iostream而不是iostream.h。

注意 <iostream>和 <iostream.h>是两个不同的东西
<iostream>是STL库
<iostream.h>是兼容于c的库
所有STL库都在std::名空间下
std::cout是 <iostream>里面的对象

namespace std: 所有的C++ Standard Library Class都包含在这个叫std的name
space里。比如 <vector>, <iostream>, <iterator>等等。所以当你使用它们其中的class时
,需要加入这个语句,using namespace std; 不然编译器报错。

 

--------------------------------

 

按照上述的方法修改,果不其然,通过了编译。感谢提供上述解答的无名网友。

 

修改后的代码如下:

 



1. #include "MyArea.h" 
2. #include <iostream> 
3. using namespace
4.   
5. void
6. double
7. "please enter tow number: "<<endl;  
8.     cin>>width>>length;  
9.   
10. "area of rectangle is "<<rect(width,length)<<endl;  
11.       
12. double
13.   
14. "please enter radius: "<<endl;  
15.     cin>>radius;  
16.   
17. "area of circle is "<<circle(radius)<<endl;  
18.   
19. }


知道了原因就很简单了。

 

 

说明:注意所包含的头文件,头文件中的内容也要做相应的修改


 

旧的源文件如下:




1. #include "MyArea.h" 
2. #include <iostream.h> 
3.   
4. void
5. double
6. "please enter tow number: "<<endl;  
7.     cin>>width>>length;  
8.   
9. "area of rectangle is "<<rect(width,length)<<endl;  
10.       
11. double
12.   
13. "please enter radius: "<<endl;  
14.     cin>>radius;  
15.   
16. "area of circle is "<<circle(radius)<<endl;  
17.   
18. }


 

一直报上面的错误,无法通过编译。遂放狗开始搜索。。。。。

得到如下的原因和解决方法:

-----------------------------------------

#include <iostream.h > 是VC6以前的写法。

#include <iostream >
using  namespace  std;

这个是标准库的写法。标准库把这些个文件都放到std这个namespace里面了。

可以到VC/include看看和VC6.0的区别,是iostream而不是iostream.h。

注意 <iostream>和 <iostream.h>是两个不同的东西
<iostream>是STL库
<iostream.h>是兼容于c的库
所有STL库都在std::名空间下
std::cout是 <iostream>里面的对象

namespace std: 所有的C++ Standard Library Class都包含在这个叫std的name
space里。比如 <vector>, <iostream>, <iterator>等等。所以当你使用它们其中的class时
,需要加入这个语句,using namespace std; 不然编译器报错。

 

--------------------------------

 

按照上述的方法修改,果不其然,通过了编译。感谢提供上述解答的无名网友。

 

修改后的代码如下:

 



1. #include "MyArea.h" 
2. #include <iostream> 
3. using namespace
4.   
5. void
6. double
7. "please enter tow number: "<<endl;  
8.     cin>>width>>length;  
9.   
10. "area of rectangle is "<<rect(width,length)<<endl;  
11.       
12. double
13.   
14. "please enter radius: "<<endl;  
15.     cin>>radius;  
16.   
17. "area of circle is "<<circle(radius)<<endl;  
18.   
19. }


知道了原因就很简单了。

 

 

说明:注意所包含的头文件,头文件中的内容也要做相应的修改