從問題How to open an std::fstream with a unicode filename @jalf指出,C++標準庫不是Unicode知道,但有一個窗口延伸接受wchar_t數組。
您將能夠通過在wstream_t數組作爲參數的fstream對象上創建或調用open來打開Windows平臺上的文件。
fstream fileHandle(L"δ»Wüste.txt");
fileHandle.open(L"δ»Wüste.txt");
上述兩種將調用的wchar_t *的相應的功能的版本,如在串將L前綴指示其是被當作一個Unicode字符串。
編輯:這是一個應該編譯和運行的完整示例。我在我的計算機上創建了一個名爲δ»Wüste.txt
的文件,其內容爲This is a test.
然後我編譯並在同一目錄中運行以下代碼。
#include <fstream>
#include <iostream>
#include <string>
int main(int, char**)
{
std::fstream fileHandle(L"δ»Wüste.txt", std::ios::in|std::ios::out);
std::string text;
std::getline(fileHandle, text);
std::cout << text << std::endl;
system("pause");
return 0;
}
的輸出是:
This is a test.
Press any key to continue...
@Ephphatha看到的,這個問題的描述正確。它不是重複的。 – 2011-04-20 09:00:44
它看起來和我完全一樣,但無論如何我都會回答。 – Ephphatha 2011-04-20 09:05:03
文件名固有地系統特定,並且取決於底層文件系統支持的內容。該語言無法定義。 – 2011-04-20 09:47:19