1

好的,所以我从高中起就没有使用过 C++(曾经在 borland C++ 工作过)

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

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

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

如何正确使用 Fstream?

提前致谢!

注意:我使用的是 Visual Studio 2008

4

5 回答 5

4

从改变

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

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

完毕!

于 2012-11-10T11:37:12.260 回答
2

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

#include <fstream>
std::fstream f("Cities.txt",std::ios::in); 
于 2012-11-10T11:40:05.080 回答
1

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

#include <fstream>

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

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

您还缺少"after 文件名。

于 2012-11-10T11:36:21.480 回答
1

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

#include <fstream>

…

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

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

于 2012-11-10T12:53:18.080 回答
0

你也可以写

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

using指令允许您不要std::在一切之前写。当心,这可能是不好的做法,但在小程序中它不应该是一个问题。

于 2012-11-10T11:55:03.217 回答