程序设计题
把命令行参数中的前一个文件名标识的文件,复制到后一个文件名标识的文件中,如命令行中只有一个文件名则把该文件写到标准输出文件(显示器)中。
院校 题库 答疑区 网课 机试 课程 DmJ 兑换 笔记 游戏 返回主页 [C语言 P1598] 把命令行参数中的前一个文件名标识的文件,复制到后一个文件名标识的文件中,如命令行中只有一个文件名则把 学习人数: 2.0k 正确率: ??% 题目描述 未通过 程序设计题 把命令行参数中的前一个文件名标识的文件,复制到后一个文件名标识的文件中,如命令行中只有一个文件名则把该文件写到标准输出文件(显示器)中。 上一题下一题 个人笔记已有7条笔记 请输入你的答案 3 个回答 (点击展开回答) hello@noobdream 2023年10月27日 21:51 #include int main(int argc, char *argv[]) { FILE *fp1, *fp2; char ch; if (argc==2) { printf("%s\n", argv[1]); } else if (argc==3) { fp1 = fopen(argv[1], "r"); fp2 = fopen(argv[2], "a"); while(1) { ch = fgetc(fp1); fprintf(fp2, "%c", ch); if(feof(fp1)) { fclose(fp1); fclose(fp2); break; } } } return 0; }
#include <stdio.h> int main(int argc, char *argv[]) { FILE *fp1, *fp2; char ch; if (argc==2) { printf("%s\n", argv[1]); } else if (argc==3) { fp1 = fopen(argv[1], "r"); fp2 = fopen(argv[2], "a"); while(1) { ch = fgetc(fp1); fprintf(fp2, "%c", ch); if(feof(fp1)) { fclose(fp1); fclose(fp2); break; } } } return 0; }
#include <stdio.h> int main(int argc, char *argv[]) { FILE *src_file, *dest_file; char ch; // 检查命令行参数数量 if (argc < 2) { printf("请提供文件名\n"); return 1; } // 打开源文件 src_file = fopen(argv[1], "r"); if (src_file == NULL) { printf("无法打开源文件\n"); return 1; } // 检查命令行参数数量,如果大于2,则打开目标文件 if (argc > 2) { dest_file = fopen(argv[2], "w"); if (dest_file == NULL) { printf("无法打开目标文件\n"); fclose(src_file); return 1; } } else { dest_file = stdout; // 如果只有一个文件名,则写入标准输出 } // 从源文件中读取内容,并写入目标文件 while ((ch = fgetc(src_file)) != EOF) { fputc(ch, dest_file); } // 关闭文件 fclose(src_file); if (dest_file != stdout) { fclose(dest_file); } return 0; }
#include<stdio.h> int main(int argc, char * argv[]){ FILE *fin, *fout; char c; if(argc < 2){ printf("error !\n"); return 1; } fin = fopen(argv[1], "r"); if(fin == NULL){ printf("Failed to open input file1:%s\n",argv[1]); return 2; } if(argc == 2){ while((c = fgetc(fin)) != EOF){ putchar(c); } }else{ fout = fopen(argv[2], "w"); if(fout == NULL){ printf("Failed to open file2:%s\n", argv[2]); fclose(fin); return 3; } while((c = fgetc(fin)) != EOF){ fputc(c, fout); } fclose(fout); } fclose(fin); return 0; }
#include<stdio...
用户登录可进行刷题及查看答案
#include<stdio.h>
main(int argc,char *argv[])
{
FILE *fp1,*fp2;
char ch;
if(argc==1)
printf("have not enter file name strike any key exit");
getch();
exit(0);
}
if((fp1=fopen(argv[1],"rt"))==NULL)
printf("Cannot open %s\n",argv[1]);
exit(1);
if(argc==2) fp2=stdout;
else if((fp2=fopen(argv[2],"wt+"))==NULL)
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp2);
fclose(fp1);
fclose(fp2);
【解析】本程序为带参的main函数。程序中定义了两个文件指针fp1和fp2,分别指向命令行参数中给出的文件。如命令行参数中没有给出文件名,则给出提示信息。程序第18行表示如果只给出一个文件名,则使fp2指向标准输出文件(即显示器)。程序第25行至28行用循环语句逐个读出文件1中的字符再送到文件2中。再次运行时,给出了一个文件名,故输出给标准输出文件stdout,即在显示器上显示文件内容。第三次运行,给出了二个文件名,因此把string中的内容读出,写入到OK之中。
登录后提交答案