win10 命令行启用C程序读写文件
之前写了一下C语言操作文件的代码,将打要读写的文件名直接用字符串常量的方式写在代码里面,只要运行目录下存在需要文件,调试和双击打开都没问题,唯独Win命令行运行是出现问题。
于是尝试将需要打开和写入的文件名在命令行以字符串方式输入,然后用main函数的char * argv[]传参,问题得到有效解决。
原创随笔,转载注明出处,谢谢!
代码如下:
1 #include<stdio.h> 2 #include<stdlib.h> 3 FILE *fp,*fp1; 4 int main(int argc,char* argv[]) 5 { 6 int ch,count=0; 7 if(argc!=3) 8 { 9 printf("Usage:%s filename\0",argv[0]); 10 exit(EXIT_FAILURE); 11 } 12 13 if((fp=fopen(argv[1],"r"))==0||(fp1=fopen(argv[2],"w"))==0) /*argv[1]和argv[2]分别是指向命令行第二个和第三个参数的指针, 14 即要读和写的文件名,包含文件路径*/ 15 { 16 printf("openerr!\n"); 17 //char c=getchar(); 18 exit(0); 19 } 20 21 while(fscanf(fp,"%c",&ch)==1) //这里用fscanf函数控制不会多读值,用!feof(fp)控制会多读一个值 22 { 23 printf("%c",ch); 24 fprintf(fp1,"%c",ch); 25 count++; 26 } 27 printf("%d\n",count); 28 //char d =getchar(); 29 return 0; 30 }
运行结果: