好的,所以我从高中起就没有使用过 C++(曾经在 borland C++ 工作过)
现在我想用 C++ 解决一个问题,但我不明白为什么 fstream 不起作用
由于某种原因 ios::in 不起作用。
#include <fstream>
fstream f("Cities.txt,ios::in);
如何正确使用 Fstream?
提前致谢!
注意:我使用的是 Visual Studio 2008
从改变
fstream f("Cities.txt,ios::in);
至
std::fstream f("Cities.txt" , std::ios::in);
^^^ ^ ^^^
namespace you miss" namespace
完毕!
你在高中学到的东西可能早在 97 年 C++ 标准化之前。根据标准,所有 C++ 库函数都是 std 命名空间的一部分。为了使用作为标准命名空间一部分的 fstream,您必须使用 std:: 对其进行限定,因此,您的语法为
#include <fstream>
std::fstream f("Cities.txt",std::ios::in);
您必须首先创建一个ifstream
类对象,然后打开文件。这样做。
#include <fstream>
std :: ifstream f ("Cities.txt",ios::in) ;
然后检查它是否打开并开始使用它。
您还缺少"
after 文件名。
作为 的替代方案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更方便。
你也可以写
#include <fstream>
using namespace std;
fstream f("Cities.txt",ios::in);
该using
指令允许您不要std::
在一切之前写。当心,这可能是不好的做法,但在小程序中它不应该是一个问题。