2012-11-10 79 views
1

好了,所以我沒有因爲使用C++高中(適用於用Borland C++工作)C++使用fstream的

現在我要解決在C++中的一個問題,但我不明白爲什麼fstream的不起作用

由於某種原因ios :: in不起作用。

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

如何正確使用Fstream?

在此先感謝!

注:我使用Visual Studio 2008

+1

std :: ifstream,std :: ios :: in – Guillaume07

+0

第一:用另一個'''結束文件名 – ATaylor

回答

1

你必須首先創建ifstream類的一個對象,然後打開該文件。 這樣做。

#include <fstream> 

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

然後檢查它是否打開並開始使用它。

您也在文件名後缺少"。從

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

+0

不要養成使用'using namespace std;'的習慣,除了最微不足道的例子它是反效果的 –

+0

編輯爲。 –

3

變化

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

完成!

+0

謝謝,它的工作 – robertpas

2

你在高中學到的東西大概是在97年C++標準化之前。按照該標準,所有C++庫函數都是std名稱空間的一部分。爲了使用fstream的是標準的命名空間的一部分,你有性病,以限定它::是這樣,那讓你的語法

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

你也可以寫

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

using指令允許你在所有事情之前不寫std::。當心,這可能是不好的做法,但在小程序中,它不應該是一個問題。

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