2012-08-01 47 views
0

我有以下形式的代碼:得到從文件中保存的數據寫入其中後不關閉程序

func1() 
{ 
    fstream stud("student", fstream::in | fstream::out | fstream::app); 
    stud << "sameer"; 
    stud.close(); 
} 

func2() 
{ 
    string name; 
    fstream stud("student", fstream::in | fstream::out | fstream::app); 
    stud >> name; 
    stud.close(); 
} 

這裏兩個功能都在同一個程序,但即使func1已經stud關閉,在打開文件func2所做的更改未反映。

+0

在這裏工作,你能提供一個真正的測試案例嗎? – jrok 2012-08-01 20:53:08

回答

1

擺脫fstream::app從您的讀者。使用fstream::app時,文件指針從文件末尾開始,所以您只需讀取一個空字符串。

+0

fstream :: app因爲我必須追加數據在文件的末尾建議任何其他的東西,以允許追加數據,然後...我只是擔心,我曾經寫入文件仍然可用於輸入,但與上述方法我能夠寫入數據,但即使在關閉文件流後也無法讀取相同的數據。 – 2012-08-02 17:53:10

+0

你有很多選擇。在編寫時設置'fstream :: app',但在讀取時不*讀取將解決您的直接問題。如果您在閱讀時堅持'fstream :: app',則使用'seekg'和'tellg'將文件移到數據所在的位置。 – 2012-08-02 19:13:37

相關問題