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

  • 问题

  • 		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();
    代码如上,请问我该如何定位问题?
    2019年11月12日 8:50

答案

全部回复

  • 你好,

    感谢你在这里发帖。

    >>GetLastError 输出为 123

    错误123官方解释是文件名、目录名或卷标语法不正确。那就从你的那两段字符串入手。考虑下冒号:和:英文和中文还是有区别的,肉眼看不出来。建议你查看下你的两个字符串有何区别。

    Best Regards,

    Suarez Zhou



    如果您对Visual Studio 或Microsoft Azure相关产品感兴趣,请点击此链接,或扫描以下二维码注册获取相关信息。



    2019年11月12日 9:36
  • 你好,

    你的问题解决了吗?如果解决了,请标记有价值的回复为答案,我们也欢迎你分享自己的解决方案并标记其为答案,这样会方便论坛上的其他用户更快地找到解决方案。

    Best Regards,

    Suarez Zhou


    如果您对Visual Studio 或Microsoft Azure相关产品感兴趣,请点击此链接,或扫描以下二维码注册获取相关信息。


    2019年11月15日 7:54
  • 没有解决啊!

    而且我确认过了,字符串是一模一样的哦

    2019年12月5日 9:15