2010-08-17 114 views
1

我得到了C++代碼如下:C++緩存文件是什麼意思?

string cachefile = filename + ".cache"; 
ifstream cache(cachefile.c_str(), ios::binary); 

,因爲我沒有在C++引用找到它,什麼是這些代碼做什麼(例如ifstream等)?請問什麼是緩存文件?爲什麼要創建它?有什麼優點以及如何解釋它?最重要的是,上述代碼的功能是什麼?

回答

3

有關ifstream的一些信息,請參閱here,它只是您可以用來打開文件的類來讀取它。

「.cache」文件沒有特別的參考,這一切都取決於你正在使用的應用程序。

1

ifstream是輸入文件流,它是標準C++ iostreams庫的一部分。

上面的代碼所做的是以二進制模式打開一個文件(即沒有任何字符轉換)進行讀取。

以下是用於C++文件輸入/輸出的tutorial

1

緩存文件是一個文件,用於存儲數據供以後使用(通常再次使用)。緩存用於幫助加速程序。緩存不一定是C++的東西,只是一個軟件。

以上所有代碼都打開了一個可用作緩存的文件(ifstream)。您實際上不會在您的代碼中緩存任何內容。

這裏的ifstream的的描述:http://www.cplusplus.com/reference/iostream/ifstream/

0

第一行符連接字符串「.cache」指定的文件名的末尾。如果filename包含「xyz.txt」,則緩存文件名稱將變爲「xyz.txt.cache」。

第二行創建一個從該緩存文件讀取的二進制輸入流。

程序使用緩存文件來存儲現在需要讀取的數據。這可以從名稱和上下文中推導出來。我們不能只說更多;它取決於整個應用程序。沒有我知道的「.cache」文件的標準。

+0

謝謝。所以緩存文件是否被創建到工作目錄中? – luna 2010-08-17 14:35:34

+0

@luna:這個語句讀取在其他地方創建的現有緩存文件 - 「ifstream」是輸入文件流。它將從基本文件名讀取(並因此將被創建)在相同的目錄中。如果只包含「xyz.txt」,那將是當前目錄;如果它包含「abc/def/xyz.tzt」,它將位於「abc/def」子目錄中,等等。如果不知道'filename'中的值,我們可以不再說。 – 2010-08-17 14:38:46

+0

@Janathan:好的,我明白了,謝謝。我應該但不能upvote這個答案,因爲我沒有足夠的聲譽評分,對不起,但謝謝 – luna 2010-08-17 14:45:22

0

找出某個功能或類所做的最簡單的方法是查看參考網站。我最喜歡的C++是cplusplus.com。這是一個link to their entry on ifstream
就cachefile而言,它是一個字符串,表示文件流的文件名。

+0

謝謝,我指的是C++維基頁面 – luna 2010-08-17 14:42:25

0
string cachefile = filename + ".cache"; 

這將創建一個新的字符串,命名爲cachefile,串接給它,其內容是filename的內容,與".cache"

ifstream cache(cachefile.c_str(), ios::binary); 

這將打開從存儲在cachefile名稱的文件的輸入文件流二進制讀。