my=fopen("E:\\test\\aaa","wb+")
if(my==NULL){
printf("cannot open\n")
}
}
不就可以了?
复杂些的这样
int main(int argv,char **argc){
char *path = argc[0]//参数0就是程序本身嘛.
}
如果想完美地解决,可以这样
char filename[MAX_PATH]
GetModuleFileName(NULL,filename,sizeof(path))
*(strrchr(filename,'猛键\\')) = 0
strcat(filename,"aaa")
GetModuleFileName能找到程序的完整路径,只要去掉文件名就可以了.
if那行后面确实多加了个分号,这个也会产生问题(这个只是我参考上枝扰巧面答案才注意的.) 不过如果跨目录去调用那个程李饥序的时候,依然会找不到文件,这个时候就需要我提供的方法了.
if(!(fp=fopen("map.txt"备塌,"r"))) exit(0)改成蚂拆
if(!(fp=fopen("map.txt","r"))) exit(0)
你多写了一个仿物圆
dev头文件和源文件联系起来的步骤如下:1、谭浩强老师的《C程序设计》一书中提烂友到,编泽器预处理时,要对#include命令进行"文件包含处理":将headfile.h的全部内容卜历猛复制到#includeheadfile.h"处;
2、程序编译的时候,并不会去找b.cpp文件中的函数实现,只有在link的时候才进行这个工作。我们在b.cpp或c.cpp中用#include"a.h"实际上是引入相关声明,使型桥得编译可以通过,程序并不关心实现是在哪里,是怎么实现的。源文件编译后生成了目标文件(.o或.obj文件〉,目标文件中,这些函数和变量就视作一个个符号。在link的时候,需要在makefile里面说明需要连接哪个.o或.cbj文件(在这里是b.cpp生成的.o或.obj文件〕,此时,连接器会去这个.o或.obj文件中找在b.cpp中实现的函数,再把他们build到makefile中指定的那个可以执行文件中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)