鱼C论坛

 找回密码
 立即注册
查看: 4127|回复: 2

关于文件操作的问题 急急急急.....

[复制链接]
发表于 2013-1-1 00:04:46 | 显示全部楼层 |阅读模式
5鱼币
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(int argc,char *argv[])
{
FILE *in,*out;
    int ch;
char r[255],w[255];

if(argc!=3)
{
  //fprintf(stderr,"标准输入格式: copyfile 源文件 目标文件 \n");
  //exit(EXIT_FAILURE);
  printf("请输入原文件名:\n");
  scanf("%s",r);
        printf("请输入目标文件名:\n");
  scanf("%s",w);
}
else
{
  
  strcpy(r,argv[1]);
  strcpy(w,argv[2]);
}
if(in=fopen(r,"rb")==NULL)
{
  fprintf(stderr,"打不开文件:%s\n",r);
  exit(EXIT_FAILURE);
}
if(out=fopen(w,"wb")==NULL)
{
  fprintf(stderr,"打不开文件: %s \n",w);
  fclose(in);
  exit(EXIT_FAILURE);
}
while(ch=getc(in)!=EOF)
{
  if(putc(ch,out)==EOF)
  {
   break;
  }
}
if(ferror(in))
{
  printf("读取文件%s失败\n",r);
}
if(ferror(out))
{
  printf("写入文件%s失败\n",w);
}
printf("成功复制一个文件!\n");
   fclose(in);
   fclose(out);
}

                               
登录/注册后可看大图

                               
登录/注册后可看大图

最佳答案

查看完整内容

vs2008调试过,虽然逻辑上还有些漏洞,至少可以运行了:) 还有,在不知道运算符优先级的情况下,还是用括号比较保险哦。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-1 00:04:47 | 显示全部楼层
vs2008调试过,虽然逻辑上还有些漏洞,至少可以运行了:)
还有,在不知道运算符优先级的情况下,还是用括号比较保险哦。
  1. #include "stdafx.h"


  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include<string.h>

  5. void main(int argc,char *argv[])
  6. {
  7.         FILE *in,*out;
  8.         int ch;
  9.         char r[255],w[255];

  10.         if(argc!=3)
  11.         {
  12.                 //fprintf(stderr,"标准输入格式: copyfile 源文件 目标文件 \n");
  13.                 //exit(EXIT_FAILURE);
  14.                 printf("请输入原文件名:\n");
  15.                 scanf("%s",r);
  16.                 printf("请输入目标文件名:\n");
  17.                 scanf("%s",w);
  18.         }
  19.         else
  20.         {

  21.                 strcpy(r,argv[1]);
  22.                 strcpy(w,argv[2]);
  23.         }
  24.         [color=Red]if((in=fopen(r,"rb"))==NULL)[/color]
  25.         {
  26.                 fprintf(stderr,"打不开文件:%s\n",r);
  27.                 exit(EXIT_FAILURE);
  28.         }
  29.         [color=Red]if((out=fopen(w,"wb"))==NULL)[/color]
  30.         {
  31.                 fprintf(stderr,"打不开文件: %s \n",w);
  32.                 fclose(in);
  33.                 exit(EXIT_FAILURE);
  34.         }
  35.         [color=Red]while((ch=getc(in))!=EOF)[/color]
  36.         {
  37.                 if(putc(ch,out)==EOF)
  38.                 {
  39.                         break;
  40.                 }
  41.         }
  42.         if(ferror(in))
  43.         {
  44.                 printf("读取文件%s失败\n",r);
  45.         }
  46.         if(ferror(out))
  47.         {
  48.                 printf("写入文件%s失败\n",w);
  49.         }
  50.         printf("成功复制一个文件!\n");
  51.         fclose(in);
  52.         fclose(out);
  53.         return ;
  54. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-1-1 00:20:00 | 显示全部楼层
运行提示内存不能为"read"
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-9 20:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表