user-0 提问: fopen打开文件出问题，在打开第一个文件时 就出现1cannot open。我把那个text文件已经放到了debug文件里 和可执行程序.exe在一个文件里

回复:
user: user-0
content: 引用 1 楼 zhao4zhong1 的回复:项目、属性、配置属性、调试、工作目录：填写你text.txt文件所在目录。老师 你说的有点晦涩难懂，，可以说具体一些吗

user: user-0
content: 引用 4 楼 github_27756899 的回复:[quote=引用 楼主 qq_18888869 的回复:] #include<stdio.h> #include<stdlib.h> #include<string.h> #define LEN 40  int main(int argc,char*argv[]) { 	FILE *in,*out; 	int ch; 	char name[LEN]; 	int count=0; 	//检查命令行参数 	if(argc<2) 	{ 		fprintf(stderr,"usage:%s filename\n",argv[0]); 		exit(1); 	} 	if((in=fopen(argv[1],"r"))==NULL) 	{ 		fprintf(stderr,"1cannot open\n"); 		exit(2); 	} 	strcpy(name,argv[1]); 	strcat(name,".red"); 	if((out=fopen(name,"w"))==NULL) 	{ 		fprintf(stderr,"2cannot open\n"); 		exit(2); 	} 	while(ch=getc(in)!=EOF) 	{ 		if(count++%3==0) 		putc(ch,out); 	} 	if(fclose(in)!=0||fclose(out)!=0) 	    fprintf(stderr,"error in close files\n"); 	return 0; } 在打开第一个文件时 就出现1cannot open。我把那个text文件已经放到了debug文件里 和可执行程序.exe在一个文件里 为什么还是打不开 printf("%s\n",argv[1]);添加到之前if((in=fopen(argv[1],"r"))==NULL) 如果输出的文件名就是你要操作的文件名,接着把if((in=fopen(argv[1],"r"))==NULL)改为if((in=fopen(argv[1],"w"))==NULL)看看生成的文件在那?之后把代码改回来，把文件放到那个文件夹。 否则考虑怎么把文件赋值给argv[1]。 [/quote]我前边的用你说的 最后文件生成在administrator, 我的程序在桌面上的13—0 ,可执行程序在13—0里边的debug,我把程序改回来文件放到admin文件里边还是说不能打开，怎么办

user: user-1
content: http://bbs.csdn.net/topics/391855019

user: user-2
content: 引用 5 楼 qq_18888869 的回复:[quote=引用 4 楼 github_27756899 的回复:] [quote=引用 楼主 qq_18888869 的回复:] #include<stdio.h> #include<stdlib.h> #include<string.h> #define LEN 40  int main(int argc,char*argv[]) { 	FILE *in,*out; 	int ch; 	char name[LEN]; 	int count=0; 	//检查命令行参数 	if(argc<2) 	{ 		fprintf(stderr,"usage:%s filename\n",argv[0]); 		exit(1); 	} 	if((in=fopen(argv[1],"r"))==NULL) 	{ 		fprintf(stderr,"1cannot open\n"); 		exit(2); 	} 	strcpy(name,argv[1]); 	strcat(name,".red"); 	if((out=fopen(name,"w"))==NULL) 	{ 		fprintf(stderr,"2cannot open\n"); 		exit(2); 	} 	while(ch=getc(in)!=EOF) 	{ 		if(count++%3==0) 		putc(ch,out); 	} 	if(fclose(in)!=0||fclose(out)!=0) 	    fprintf(stderr,"error in close files\n"); 	return 0; } 在打开第一个文件时 就出现1cannot open。我把那个text文件已经放到了debug文件里 和可执行程序.exe在一个文件里 为什么还是打不开 printf("%s\n",argv[1]);添加到之前if((in=fopen(argv[1],"r"))==NULL) 如果输出的文件名就是你要操作的文件名,接着把if((in=fopen(argv[1],"r"))==NULL)改为if((in=fopen(argv[1],"w"))==NULL)看看生成的文件在那?之后把代码改回来，把文件放到那个文件夹。 否则考虑怎么把文件赋值给argv[1]。 [/quote]我前边的用你说的 最后文件生成在administrator, 我的程序在桌面上的13—0 ,可执行程序在13—0里边的debug,我把程序改回来文件放到admin文件里边还是说不能打开，怎么办[/quote] 换种方法: 1.把那个text文件放到13—0里边的debug中。 2.在13—0里边的debug中新建一个test.bat文件,用记事本打开输入以下内容 可执行程序.exe 你要读入的文件名.txt  保存，单击test.bat。试试(注意可执行程序.exe与你要读入的文件名.txt之间有空格。)

user: user-1
content: 项目、属性、配置属性、调试、工作目录：填写你text.txt文件所在目录。

user: user-2
content: 引用 楼主 qq_18888869 的回复:#include<stdio.h> #include<stdlib.h> #include<string.h> #define LEN 40  int main(int argc,char*argv[]) { 	FILE *in,*out; 	int ch; 	char name[LEN]; 	int count=0; 	//检查命令行参数 	if(argc<2) 	{ 		fprintf(stderr,"usage:%s filename\n",argv[0]); 		exit(1); 	} 	if((in=fopen(argv[1],"r"))==NULL) 	{ 		fprintf(stderr,"1cannot open\n"); 		exit(2); 	} 	strcpy(name,argv[1]); 	strcat(name,".red"); 	if((out=fopen(name,"w"))==NULL) 	{ 		fprintf(stderr,"2cannot open\n"); 		exit(2); 	} 	while(ch=getc(in)!=EOF) 	{ 		if(count++%3==0) 		putc(ch,out); 	} 	if(fclose(in)!=0||fclose(out)!=0) 	    fprintf(stderr,"error in close files\n"); 	return 0; } 在打开第一个文件时 就出现1cannot open。我把那个text文件已经放到了debug文件里 和可执行程序.exe在一个文件里 为什么还是打不开 printf("%s\n",argv[1]);添加到之前if((in=fopen(argv[1],"r"))==NULL) 如果输出的文件名就是你要操作的文件名,接着把if((in=fopen(argv[1],"r"))==NULL)改为if((in=fopen(argv[1],"w"))==NULL)看看生成的文件在那?之后把代码改回来，把文件放到那个文件夹。 否则考虑怎么把文件赋值给argv[1]。

user: user-2
content: argv[1]赋值为文件名了没?

user: user-3
content: 是需要把文件放在你程序cpp所在的那个文件夹