好的,所以我从没用过C ++,因为高中(曾经在Borland C ++工作)
现在我想解决C ++中的问题,但我不明白为什么fstream不起作用
出于某种原因,ios :: in不起作用。
#include <fstream>
fstream f("Cities.txt,ios::in);
如何正确使用Fstream?
提前致谢!
注意:我正在使用Visual Studio 2008
答案 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::
。请注意,这可能是不好的做法,但在小程序中它应该不是问题。