C++异常处理范例代码
2018-07-20 来源:open-open
// 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; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇: C#文件路径获取函数和文件名字获取函数
下一篇:Java移除字符串中的重复字符
最新资讯
热门推荐