中文用的是宽字符,在C++中使用的均是以w开头的函数、类。
文件名为英文\中文,内容为中文:
int main() {
wchar_t linex[100];
FILE* f1;
f1 = _wfopen(L"in.txt", L"rt+,ccs=UNICODE");
locale loc("");
wcout.imbue(loc);
while(!feof(f1)) {
fgetws(linex, 100, f1);
wcout<< linex<< endl;
}
fclose(f1);
return 0;
}
如果想要利用里面的中文,再次查找路径,可以用以下的方式,如果再次采用 _wfopen 方式打开会失败:
int main() {
wchar_t linex[100];
FILE* f1;
f1 = _wfopen(L"in.txt", L"rt+,ccs=UNICODE");
locale loc("");
wcout.imbue(loc);
while(!feof(f1)) {
fgetws(linex, 100, f1);
wcout<< linex<< endl;
wstring s;
wifstream file(linex);
locale china("chs");
wcin.imbue(china);
wcout.imbue(china);
if(!file) {
fprintf(stderr, "open error\n");
continue;
}
wh