竹叶风轻敲 2024-07-02 11:07 采纳率: 51.2%
浏览 2
已结题

利用标准IO复制文件出问题多出了三行

img

img


第一个图片是利用标准IO写的代码,第二个图片是结果,但是多出了三行

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-07-02 11:07
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从你提供的两个图片中的代码来看,我注意到了一些可能的问题和错误,这可能是导致多余输出的原因。我将分别分析两个代码段,并给出可能的解决方案。

    第一张图片中的代码问题:

    1. 语法错误:在第三行的宏定义 #define max 64 后面有一个多余的 3#,这应该是一个注释标记,但格式不正确。
    2. 数组声明错误:在第三行 char*argv[j) 中,j 应该是一个整数,表示参数的数量,但这里看起来像是一个语法错误。
    3. 条件判断错误:在第8行 if(argc<3) 中,argc 应该是一个整数,表示命令行参数的数量,但这里 argc 后面缺少了等号 ==
    4. 输出格式错误:在第10行 printf("%s./test 1,2",argv[o]); 中,argv[o] 应该是 argv[0]o 应该是数字 0
    5. 文件打开错误:在第14行和第15行,fp1fp2 的打开方式应该是 "rb""wb",分别代表二进制读取和写入,而不是文本模式 "r""w"
    6. 内存读取错误:在第20行 while(fread(ch,1,max,fp1)<0) 中,条件应该是 >0,因为 fread 返回的是成功读取的元素数量。

    第二张图片中的代码问题:

    1. 宏定义错误:同样在第二张图片中,#define max 1024 后面也有一个多余的 32
    2. 变量声明错误:在第4行 int main(int argc,char*argv[j) 中,同样存在数组声明的错误。
    3. 条件判断错误:在第9行 if(argc<2) 中,同样存在 argc 后面的等号问题。
    4. 文件打开错误:第13行 fp1=fopen(argv[1],"r"); 应该使用二进制模式 "rb"
    5. 字符串处理错误:在第21行 if(ch[strlen(ch)-1]=-'\n') 中,应该是 == 而不是 -
    6. 内存清零错误:在第22行 memset(ch,o,sizeof(ch)); 中,o 应该是数字 0
    7. 输出格式错误:在第24行 printf("n::%din",nember); 中,应该是 printf("n::%d\n",nember);

    修正建议:

    • 修正所有语法错误和变量声明错误。
    • 确保使用正确的文件打开模式。
    • 修正条件判断和内存操作的错误。
    • 确保输出格式正确,特别是字符串的结束符 \0

    参考链接:

    修正后的代码应该能够正确地复制文件,而不会产生多余的输出。如果你需要更具体的帮助,可以提供更详细的代码或错误信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月2日
  • 创建了问题 7月2日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题