加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++异常处理范例代码

发布时间:2020-12-16 07:45:54 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 // Program shows copying one text file from source location// to any other location (destination),plus possibility of changing its name,// a

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

// Program shows copying one text file from source location
// to any other location (destination),plus possibility of changing its name,// and also shows many language features in exception handling.
// This program should be run from the command prompt
  
#include<iostream>
#include<stdio.h>
#include<stdexcept>
  
using namespace std;
  
class PathError : public runtime_error
{
    public:
        PathError(const char *x) : runtime_error(x)
    {}
};
  
// function to open source file for read
  
FILE* source (char* argvs[])
{
    FILE *in;
    //open source file for read
    if((in = fopen(argvs[1],"r"))==NULL)
    {
        throw PathError("attempted to open wrong input file path");//terminate function
    }
    return in;
}
  
//function to create destination file for writting
FILE* destination (char* argvs[])
{
    FILE *out;
    //open destination file for write
    if((out = fopen(argvs[2],"w")) == NULL)
    {
        throw PathError("attempted to open wrong output file path");//terminate function
    }
    return out;
}
  
int main(int argc,char *argv[])
{
    FILE *in,*out;
    bool flag = 1;
    int temp;
    while(argc == 3)
    {
        try
        {
            in = source( argv );
            out = destination( argv );
            argc = 0;
        }
        catch(PathError& PathError)
        {
            cerr <<"nException occured: " << PathError.what() << endl;
            return -1;
        }
  
        while(!feof(in))//test for it is not end of input file
        {
            temp = fgetc(in);//get char from (in)file
            if( temp != EOF)
            {
                fputc(temp,out);//put char to (out) file
            }
        }
        fclose(in);
        fclose(out);
        cout<<"nt 1 file copied.n";
        flag = 0;
    }
    if( flag != 0 )
    {
        cerr<<"nWrong argument list!!!nn";
        return -1;
    }
    return 0;
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读