Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从MFC中的“文件打开”对话框中选择“文件”后,fopen()不起作用_C++_Mfc - Fatal编程技术网

C++ 从MFC中的“文件打开”对话框中选择“文件”后,fopen()不起作用

C++ 从MFC中的“文件打开”对话框中选择“文件”后,fopen()不起作用,c++,mfc,C++,Mfc,在MFC应用程序中,我有一个文件浏览按钮。当我单击它并选择一个文件时,该文件已加载,一切正常 在此之后,我有一个函数,它尝试使用fopen(),打开另一个文件,但无法打开该文件,尽管该文件存在。如果在文件浏览对话框中选择取消,fopen()可以正常工作,但只要使用文件浏览对话框选择文件,fopen就无法工作 有人能告诉我为什么会这样吗 也许您可以通过相对路径指定第二个文件,并且在使用对话框打开第一个文件后,工作目录将更改。当您按下Cancel时,工作目录不会更改,并且可以工作 此问题的解决方案是

MFC应用程序中,我有一个文件浏览按钮。当我单击它并选择一个文件时,该文件已加载,一切正常

在此之后,我有一个函数,它尝试使用
fopen(),
打开另一个文件,但无法打开该文件,尽管该文件存在。如果在文件浏览对话框中选择取消,
fopen()
可以正常工作,但只要使用文件浏览对话框选择文件,fopen就无法工作


有人能告诉我为什么会这样吗

也许您可以通过相对路径指定第二个文件,并且在使用对话框打开第一个文件后,工作目录将更改。当您按下
Cancel
时,工作目录不会更改,并且可以工作


此问题的解决方案是使用完整的非相对路径指定第二个文件。

请共享代码。调试一个问题很难,阅读代码也容易得多。不相关,但我很好奇为什么您要使用
fopen
而不是
fstream
?可能是权限问题这么简单。。。检查clues的errno我只需要检查文件是否存在,所以我在做FilePopinter=fopen(“filename”);if(FilePopinter){…}else{…}但它不工作。我试着使用Joachim Pileborg说的流::good(),但效果很好,我不知道怎么做:|无论如何,谢谢大家。您对
fopen()
的第二个论点是什么?因为它通常需要两个路径(一个用于文件名,一个用于模式),所以我尝试使用非相对路径,但它无法工作。相反,我使用fsteam::good来检查文件是否存在,以及它是否工作正常。我不知道fopen出了什么问题,但fstream工作正常。无论如何,谢谢你。