请教一个C语言的问题
/*案例代码文件名:A1.C*/
/*程序功能:从键盘上输入一个字符串,存储到一个磁盘文件中、并显示输出*/
/*参数:带参主函数,使用格式:<可执行文件名> <要创建的磁盘文件名>*/
#include <stdio.h>
main(int argc, char *argv[])
{ FILE *fp; /*文件类型名“FILE”,必须大写*/
char string[100]; /*字符数组用于暂存输入输出的字符串*/
if(argc>2) /*参数太多,提示出错*/
{ printf("Too many parameters…\n\n");
printf("Usage: <可执行文件名> <filename>\n");
exit(0);
}
if(argc==1) /*缺磁盘文件名,提示输入*/
{printf("Input the filename: ");
gets(string);
argv[1]=(char *)malloc(strlen(string)+1);/*给文件名参数申请内存空间*/
strcpy(argv[1],string); /*复制文件名*/
}
if ((fp=fopen(argv[1],"w"))==NULL) /*打开文件失败*/
{ printf("can not open this file\n");
exit(0);
}
/*从键盘上输入字符串,并存储到指定文件中*/
printf("Input a string: "); gets(string); /*从键盘上输入字符串*/
fputs(string, fp); /*存储到指定文件*/
fclose(fp);
/*重新打开文件,读出其中的字符串,并输出到屏幕上*/
if ((fp=fopen(argv[1],"r"))==NULL) /*打开文件失败*/
{ printf("can not open this file\n");
exit(0);
}
fgets(string, strlen(string)+1, fp); /*从文件中读出一个字符串*/
printf("Output: \n");
for(i=0;i<strlen(string);i++)
{
if((string[i]!=32)&&(string[i]!=44)&&(string[i]!=59))
printf("%c",string[i]);
else printf("\r");
}
puts(string);/*将字符串输出到屏幕上*/
fclose(fp);
}