STL Tips
来源:互联网 发布:阴囊不舒服知乎 编辑:程序博客网 时间:2024/06/10 14:58
std::ifstream 无法读中文路径
========================================
std::ifstream file("c://中文//test.txt");
if(!file.is_open())
return FALSE;
1.在VC6.0 中结果运行正常
3.在vs .net 2005中不正确啦, is_open返回为false了
原因:
跟踪代码发现_Fiopen用的是wchar_t( 我想可能是盖子不想在WIN98下运行了,所以全部支持NT,自然就是wchar_t类型了。)
/*
这段为盖子打开文件的源代码
_MRTIMP2_NCEEPURE FILE *__CLRCALL_PURE_OR_CDECL _Fiopen(const char *filename,
ios_base::openmode mode, int prot)
{ // open wide-named file with byte name
wchar_t wc_name[FILENAME_MAX];
if (mbstowcs_s(NULL, wc_name, FILENAME_MAX, filename, FILENAME_MAX - 1) != 0)
return (0);
return _Fiopen(wc_name, mode, prot);
}
*/
另mbstowcs_s读取的时候_LocaleUpdate.localeinfo (这个与下面要讲的那个函数有关)
解决主法:
1.setlocale(LC_ALL, ""); 设置一下就OK了 //C语言的
2.std::locale::global(std::locale(""); // 标准库
- STL Tips
- STL TIPS
- STL vector usage tips and problems
- C++中stl使用过程中的一些tips
- Tips
- Tips
- Tips
- Tips
- > tips
- Tips
- Tips
- Tips
- Tips
- Tips
- Tips
- tips
- tips
- tips
- WinXP下搭建virtualbox+ubuntu10.04+LAMP+tomcat6环境小记
- Google Web Toolkit 和 Google App Engine 综合教程 界面篇
- Cadence手工创建PCB元件
- Google Web Toolkit 和 Google App Engine 综合教程 存储篇
- Building and deploying a basic WDF Kernel Mode Driver
- STL Tips
- ORA-12913
- Developing a WDF USB Kernel Mode Driver for the OSR USB FX2
- Google Web Toolkit 和 Google App Engine 综合教程 交互篇
- 我不知道
- HibernateTemplate 和HibernateDaoSupport的session
- 关于check for corrupt jvm.cfg file错误
- Debugging with Symbols
- How to Develop and Test Device Drivers in Windows CE 5.0