在我的previous問題中,我問如何從文件中讀取內存。因爲我的整個文件都在內存中,所以我想以類似的方式讀取它。如何從使用wistream的文件讀取內存?
我發現answer對我的問題,但實際上我需要讀行作爲wstring
。用文件我可以這樣做:
wifstream file;
wstring line2;
file.open("C:\\Users\\Mariusz\\Desktop\\zasoby.txt");
if(file.is_open())
{
while(file.good())
{
getline(file,line2);
wcout << line2 << endl;
}
}
file.close();
即使文件是ASCII。
現在我只是簡單地將我的string
行改爲wstring
用this的函數回答。但是,我認爲如果有辦法像wistream
那樣處理這塊內存,那麼將這條線路作爲wstring
s是更快的解決方案。我需要這個快速。
因此,任何人都知道如何將這塊內存視爲wistream
?
但我可以在`wstring`上使用`wifstream`在ASCII文件中並加載行。我會說這是一個「即時」轉換。我的意思是我可以用`ifstream`讀取ASCII文件,然後將字符串轉換爲wstrings,但我想簡單地使用`wifstream`會更快更容易。 – 2010-12-04 14:32:09
`wifstream`使用`codecvt`在幕後進行轉換。看來`stringstream`不知道該怎麼做。它在飛行中爲你做,並不意味着它更快。它是以角色爲基礎進行的,可能會涉及一些開銷。將所有內容進行批量轉換應該更快。 – detunized 2010-12-04 17:33:48