2015-11-11 34 views
-2

我是一個相當新手的程序員,在我的第二年高中時參加了幾門課程,而且遇到了一些問題。所以讓我們繼續吧。使用xCode在C++中創建,管理和刪除文件

長話短說,我已經學會了如何創建文件一樣:現在

#include <iostream> 
#include <fstream> 
using namespace std; 

int main(){ 
    string Test; 
    ofstream file; 
    file.open("Cookies.txt"); 
    if(file.is_open()){ 
     file << "I have cookies! :3" << endl; 
     file.close(); 
    } 
    else{ 
     cout << "Error. No file has been created." << endl; 
    } 
    ifstream cookies; 
    cookies.open("Cookies.txt"); 
    if(cookies.is_open()){ 
     cout << cookies.rdbuf(); 
    } 

    return 0; 
} 

但我的問題是,我怎麼樣「用」什麼是在這個文件?就像我想保存變量一樣,或者將「I have cookies!:3」導入到主程序中的字符串變量中。因爲它應該是可能的,這似乎是合理的,但我還沒有發現如何去做。

另外,如何刪除我創建的文件?因爲像 file.delete(「Cookies.txt」);根本不起作用。

非常感謝您提前給出答案。 最好的問候,Staggen。

+2

可能你應該遵循一個關於文件IO等的完整教程。這個問題真的很廣泛,你應該在那裏覆蓋你的具體問題。 – anderas

回答

0

可以從以類似的方式將文件寫入到它,使用ifstream(輸入FILESTREAM)代替ofstream(輸出文件流),以及使用該>>操作者讀入變量讀取。它默認爲一次讀取一個值,併爲字符串翻譯成「言」:

所以:

if (cookies.is_open()) 
{ 
    std::string word; 

    while (cookies >> word) // read from the filestream into "line" 
    { 
    std::cout << "Read a word: " << line << std::endl; 
    } 
} 

這是用於讀取不同的數據類型相當不錯的方法。

要讀取整個行,你可以使用std::getline()以換行符作爲分隔符:

if (cookies.is_open()) 
{ 
    std::string line; 

    while (std::getline(cookies, line, '\n')) 
    { 
    std::cout << "Read a line: " << line << std::endl; 
    } 
} 

刪除文件是操作系統級別的活動無關的讀/寫文件。 <cstdio>標題包括將刪除文件的std::remove()

@anderas is right;你應該通過文件I/O上的a tutorial來學習或鞏固基礎知識。