c++文件操作 不支持中文路径吗?
解决时间 2021-04-07 12:34
- 提问者网友:战皆罪
- 2021-04-07 07:36
我用c++编写了一个简单的有关文件操作的程序,验证了一下
#include
#include
#include
using namespace std;
void main()
{
string si,str1;
cout<<"请输入文件源路径";
cin>>si;
ifstream infile(si.c_str(),ios::in);
if(!infile)
cout<<"文件打开错误"< else
infile>>str1;
cout<<"读入的字符为: "<}
在c盘中有两个文件夹一个名为“samples”,另一个名为“例子”。这两个文件夹中都有一个aaa.txt。第一次运行时输入文件源路径c:/samples/aaa.txt,程序正常运行,显示出了aaa.txt中的内容;而第二次运行时我输入了c:/例子/aaa.txt,程序显示“文件打开错误”。
难道说c++中文件操作不出现中文吗?有没有解决这类问题方法?
我试过正斜杠和反斜杠都可以,那个无所谓
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-04-07 08:38
看是不是代码页转化的问题,请问是什么操作系统
全部回答
- 1楼网友:我住北渡口
- 2021-04-07 10:47
windows上你可以尝试使用_wsystem,传递宽字符路径。
比如
_wsystem(l"测试\\test.exe"); 不知道你在传递给system函数时,是否将路径的分隔符转义了?如果没有转义,肯定会出现问题。确保代码中的字符串是:
"\"c:\\testing\\中文目录\\空格 目录\\testing.exe\""
- 2楼网友:纵马山川剑自提
- 2021-04-07 10:36
我试过,应该没问题的。不过尽量别用含中文名字的路径。
- 3楼网友:woshuo
- 2021-04-07 09:46
c:/samples/aaa.txt这样也行,是不是反了哦 "/" "\",看好该用那个
c:\samples\aaa.txt这样应该才是对的吧
我要举报
大家都在看
推荐资讯