#include<stdio.h>
#include<stdlib.h>
#include
#define BUFSIZE 1024
using namespace std;
//1,throw普通类型,和函数返回传值是一样的
int copyfile2(const char* dest,const char* src)
{
FILE* fp1 = NULL, * fp2 = NULL;
fopen_s(&fp1, src, "rb");
if (fp1 == NULL)
{
char ret = 'a';
throw ret;
}
fopen_s(&fp2, dest, "wb");
if (fp2 == NULL)
{
throw - 2;
}
char buffer[BUFSIZE];
int readlen, weitelen;
while ((readlen = fread(buffer, 1, BUFSIZE, fp1)) > 0)
{
weitelen = fwrite(buffer, 1, readlen, fp2);
if (readlen != weitelen)
{
throw - 3;
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
int copyfile1(const char* dest, const char* src)
{
return copyfile2(dest, src);
}
void main()
{
int ret = 0;
try
{
ret = copyfile1("c:/test/dest,txt", "c:/test/src.txt");
}
catch (int error)
{
printf("出现异常啦!%d\n", error);
}
catch (char error)
{
printf("出现异常啦!%c\n", error);
}
}