zoukankan      html  css  js  c++  java
  • C++ namespace

    // namespace.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include <iostream>
    #include <cstdlib>
    
    
    namespace MyLib {
    	double readAndProcessSum (std::istream&);
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	using namespace std;
    	double sum;
    
    	try {
    		sum = MyLib::readAndProcessSum(cin);
    	}
    	catch (const ios::failure& error) {
    		cerr << "I/O exception: " << error.what() << endl;
    		return EXIT_FAILURE;
    	}
    	catch (const exception& error) {
    		cerr << "standard exception: " << error.what() << endl;
    		return EXIT_FAILURE;
    	}
    	catch (...) {
    		cerr << "unknown exception" << endl;
    		return EXIT_FAILURE;
    	}
    
    	// print sum
    	cout << "sum: " << sum << endl;
    }
    
    #include <istream>
    
    namespace MyLib {
    	double readAndProcessSum (std::istream& strm)
    	{
    		using std::ios;
    		double value, sum;
    
    		// save current state of exception flags
    		ios::iostate oldExceptions = strm.exceptions();
    
    		/* let failbit and badbit throw exceptions
    		* - NOTE: failbit is also set at end-of-file
    		*/
    		strm.exceptions (ios::failbit | ios::badbit);
    
    		try {
    			/* while stream is OK
    			* - read value and add it to sum
    			*/
    			sum = 0;
    			while (strm >> value) {
    				sum += value;
    			}
    		}
    		catch (...) {
    			/* if exception not caused by end-of-file
    			* - restore old state of exception flags
    			* - rethrow exception
    			*/
    			if (!strm.eof()) {
    				strm.exceptions(oldExceptions);  // restore exception flags
    				throw;                           // rethrow
    			}
    		}
    
    		// restore old state of exception flags
    		strm.exceptions (oldExceptions);
    
    		// return sum
    		return sum;
    	}
    }
    
  • 相关阅读:
    wamp5配置及 phpmyadmin密码修改问题
    mysql存储过程详解
    office2013的破解方法
    java jdk配置环境变量
    打包Asp.Net 网站成为一个exe 方便快捷的进行客户演示
    CUDA的学习
    深度学习3线性回归,逻辑回归
    三维重建学习1特征提取
    深度学习2线性回归,逻辑回归
    特征学习2
  • 原文地址:https://www.cnblogs.com/chunyou128/p/4354635.html
Copyright © 2011-2022 走看看