博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ throw异常(学习)
阅读量:4839 次
发布时间:2019-06-11

本文共 1019 字,大约阅读时间需要 3 分钟。

#include <iostream>

#include <stdio.h>

using namespace std;

void my_copy(const char* src_file, const char* dest_file)
{
  FILE *in_file, *out_file;
  in_file = fopen(src_file, "rb");
  if (in_file == NULL)
  {
    throw 1;
  }

  out_file = fopen(dest_file, "wb");

  if (out_file == NULL)
  {
    throw 2;
  }

  char rec[1024];

  size_t bytes_in, bytes_out;
  while ((bytes_in = fread(rec, 1, 1024, in_file))>0)
  {
    bytes_out = fwrite(rec, 1, bytes_in, out_file);
    if (bytes_in != bytes_out)
    {
      throw 3;
    }
  }
  fflush(out_file);
  fclose(out_file);
  fclose(in_file);

  

}

int main()

{
  try
  {
    my_copy("D:\\File\\1.txt", "D:\\File\\20190608\\1.txt");
  }
  catch (int e)
  {
    switch (e)
    {
    case 1:
      printf("打开源文件出错\n");
      break;
    case 2:
      printf("打开目标文件出错\n");
      break;
    case 3:
      printf("拷贝文件出错\n");
      break;
    default:
      printf("未知错误\n");
      break;
    }
  }

 

  system("pause");

  return 0;
}

 

转载于:https://www.cnblogs.com/herd/p/10991054.html

你可能感兴趣的文章
[Mac入门]如何在Mac下显示Finder中的所有文件
查看>>
证明二叉查找树所有节点的平均深度为O(logN)
查看>>
JavaScript基础--简单功能的计算器(十一)
查看>>
WPF Visifire使用 ---- 基础篇二
查看>>
SSAS: Using DMV Queries to get Cube Metadata
查看>>
操作系统存储器管理选择题精练
查看>>
一条咸鱼的养成
查看>>
修复LSP 解决不能上网问题
查看>>
第四周作业总结
查看>>
修改之前某次commit日志和内容
查看>>
动态规划:HDU1712-ACboy needs your help(分组背包问题)
查看>>
PAT A1009 Product of Polynomials(25)
查看>>
libFFM 与 python-libffm 安装遇到的一系列问题-解决方案
查看>>
数据摘要pandas
查看>>
浅谈C语言中的位段
查看>>
2019.04.25 第七次训练 【2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final 2017)】...
查看>>
javascript正则表达式复习
查看>>
【JVM】类加载器及双亲委派机制实例解析
查看>>
python 生成 pyc 文件
查看>>
linux清除git账号密码
查看>>