编译时提示 无法打开包括文件:“fstream.h”

刚刚在VS2008里面使用vc6.0的那种#include<fstream.h>方式,但是编译时提示fatal errorC1083: 无法打开包括文件:“fstream.h”: No such file or directory。

查阅了相关资料后,找到解决方法: 

#include <fstream.h>

 

改成

#include   <fstream> 

using   namespace   std;

 

编译、运行都顺利通过了~~~

 

为什么会这样子呢?

因为:

从 Visual C++ .NET 2003开始,移除了旧的 iostream 库。

标准 C++ 库和以前的运行时库之间的主要差异在于 iostream 库。iostream 实现的
具体细节已经更改,如果想链接标准 C++ 库,可能有必要重写代码中使用 iostream
的部分。

必须移除任何包含在代码中的旧 iostream 头文件(fstream.h、iomanip.h、ios.h
、iostream.h、istream.h、ostream.h、streamb.h 和 strstrea.h),并添加一个
或多个新的标准 C++ iostream头文件(<fstream>、<iomanip>、<ios>、<iosfwd>
、<iostream>、<istream>、<ostream>、<sstream>、<streambuf>和 <strstream>
,所有头文件都没有 .h 扩展名)。


在新的标准 C++ iostream 库中:
1. open 函数不采用第三个参数(保护参数)。
2. 无法从文件句柄创建流。
3. 除了几个例外,新的标准 C++ 库中的所有名称都在 std 命名空间中。有关更多信息,请参见使用 C++ 库头。
4. 单独用 ios::out 标志无法打开 ofstream 对象。ios::out 标志必须在逻辑 OR 中和另一个 ios枚举数组合;比如,和 ios::in 或 ios::app 组合。
5. 因为设置了 eofbit 状态,到达文件尾后 ios::good 不再返回非零值。 除非知道当前没有设置基标志,否则ios::setf(_IFlags)

不应和 ios::dec、ios::oct 或 ios::hex的标志值一起使用。格式化的输入/输出函数和运算符假定只设置了一个基。改用ios_base。 


更多改动的地方请查阅MSDN~


除了上述改动外,以下作为旧 iostream库元素的函数、常数和枚举数不是新 iostream
库的元素:
filebuf、fstream ifstream 和 ofstream 的 attach 成员函数
filebuf、fstream ifstream 和 ofstream 的 fd 成员函数
filebuf::openprot
filebuf::setmode
ios::bitalloc
ios::nocreate
ios::noreplace
ios::sync_with_stdio
streambuf::out_waiting
streambuf::setbuf(相同的行为使用 rdbuf -> pubsetbuf)

转自:http://www.cnblogs.com/lingshaohu/archive/2011/11/07/2239453.html

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值