使用fstream的C ++

时间:2012-11-10 11:34:09

标签: c++ fstream

好的,所以我从没用过C ++,因为高中(曾经在Borland C ++工作)

现在我想解决C ++中的问题,但我不明白为什么fstream不起作用

出于某种原因,ios :: in不起作用。

#include <fstream>
fstream f("Cities.txt,ios::in);

如何正确使用Fstream?

提前致谢!

注意:我正在使用Visual Studio 2008

5 个答案:

答案 0 :(得分:4)

改变
fstream f("Cities.txt,ios::in);

std::fstream f("Cities.txt" , std::ios::in);
^^^                       ^   ^^^
namespace          you miss"  namespace

完成!

答案 1 :(得分:2)

你在高中时学到的东西可能是在97年C ++标准化之前。根据标准,所有C ++库函数都是std命名空间的一部分。为了使用作为标准命名空间一部分的fstream,你必须用std :: so限定它,这使你的语法为

#include <fstream>
std::fstream f("Cities.txt",std::ios::in); 

答案 2 :(得分:1)

您必须首先创建ifstream类的对象,然后打开该文件。 这样做。

#include <fstream>

std :: ifstream f ("Cities.txt",ios::in) ;

然后检查它是否已打开并开始使用它。

您还缺少文件名后的"

答案 3 :(得分:1)

作为std::fstream的替代方案,请考虑std::ifstream(以及std::ofstream):

#include <fstream>

…

std::ifstream f("Cities.txt");
std::ofstream o("output.txt");
std::string s;
while( f >> s )
  o << s; 

就个人而言,我发现这比指定open mode更方便。

答案 4 :(得分:0)

你也可以写

#include <fstream>
using namespace std;
fstream f("Cities.txt",ios::in);

using指令允许您不要在所有内容之前编写std::。请注意,这可能是不好的做法,但在小程序中它应该不是问题。