【发布时间】:2011-01-18 05:58:15
【问题描述】:
我正在编写一个可以打开图像文件的程序,但奇怪的事情发生了。这是 cmd 的输出:
C:\Users\Karl\Pictures>testcvconsole mypic.jpg
argv[0]==testcvconsole
argv[1]==mypic.jpg
fopen is null
strerror(errno)==No such file or directory
当文件与可执行文件位于同一目录中时,当 fopen 无法打开我的文件时,我应该考虑什么?
这是在 Windows 7 上,Visual Studios Express 2010。C++。
编辑:下面的代码
#include "stdafx.h"
#include <string.h>
#include <errno.h>
int goMain(int argc, char** argv);
int _tmain(int argc, _TCHAR* argv[])
{
goMain(argc, (char**)argv);
return 0;
}
int goMain( int argc, char** argv ){
if (argv[1] != NULL){
printf("argv[0]==%S\nargv[1]==%S\n", argv[0], argv[1]);
if (fopen(argv[1], "r") == NULL){
printf("fopen is null\n");
printf(strerror(errno));
}
}
return 0;
}
EDIT2:
我试过了
char *workingDir =_getcwd(NULL, 0);
printf("workingDir == %S", workingDir);
按照 TomK 的建议并返回:
workingDir ==
什么都没有。嗯……
EDIT3: 我得到了一些东西。我试过了
argv[1] = "C:/Users/Karl/Pictures/mypic.jpg";
fopen 可以打开它。上面的这个语句插入到 fopen 之前。
【问题讨论】:
-
1.我们怎么知道图片真的在那里? 2. 给我一些代码!
-
请向我们展示您的源代码。
-
已按要求更新。 @Billy ONeal:因为我把图片和 .exe 放在同一个目录下。
标签: c++ visual-studio-2010 file fopen