C++異常處理范例代碼

w427 9年前發布 | 736 次閱讀 C/C++

// 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<<"\n\t 1 file copied.\n";
    flag = 0;
}
if( flag != 0 )
{
    cerr<<"\nWrong argument list!!!\n\n";
    return -1;
}
return 0;

}</pre>

 本文由用戶 w427 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!