积极答复者
两端一模一样的代码,功能是打开某个文件,然后关闭。一个成功打开,一个打开失败。该如何定位问题?

问题
-
cin.clear(); cin.sync(); // 下面这段不能打开,GetLastError 输出为 123 ifstream os3("d:\\123\\123.run", ios_base::binary |ios_base::in); // 下面这段可以打开,不会进入 if 语句块 //ifstream os3("d:\\123\\123.run", // ios_base::binary | ios_base::in); char msg[250] = { 0 }; if (os3.is_open() == false) { cout << "open failed\n" << GetLastError() << endl; if (os3.bad()) { strerror_s(msg, 250, errno); cout << msg; } if (os3.fail()) { strerror_s(msg,250,errno); cout << msg; } } os3.close();
代码如上,请问我该如何定位问题?
全部回复
-
你好,
感谢你在这里发帖。
>>GetLastError 输出为 123
错误123官方解释是文件名、目录名或卷标语法不正确。那就从你的那两段字符串入手。考虑下冒号:和:英文和中文还是有区别的,肉眼看不出来。建议你查看下你的两个字符串有何区别。
Best Regards,
Suarez Zhou
如果您对Visual Studio 或Microsoft Azure相关产品感兴趣,请点击此链接,或扫描以下二维码注册获取相关信息。
- 已编辑 Suarez-ZhouMicrosoft contingent staff 2019年11月12日 9:38
- 已建议为答案 Yong LuMicrosoft contingent staff, Moderator 2019年11月28日 3:22