初学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. }
知道了原因就很简单了。
说明:注意所包含的头文件,头文件中的内容也要做相应的修改