前几天想用VIM看小说,但是由于VIM滚屏时感觉很不爽,所以想写一个将按屏幕行截断为文本行的程序。
控件台,命令行参数传入文件名。开始时用的是英文文件名调试,没有问题。后来把所有工作做好了,在控制台中输入中文文件,一直文件打开失败!
最后想到是不是不支持中文名。果不其然:
解决方法:
1、使用C语言的函数设置为中文运行环境
setlocale(LC_ALL,"");
2、使用STL函数设置为系统语言环境
std::locale::global(std::locale(""));
示例代码如下:
int SaveRecordToFile(CString szStr, CString szFilename)
{
std::locale::global(std::locale(""));
ofstream of(szFilename);
of<<szStr;
of.close();
return 0;
}