错误检查

#ifndef COS_H_
#define COS_H_

#include <string>
#include <fstream>
#include <cstdlib>

inline void require(bool requirement, const std::string& msg = "Requirement failed")
{
	if (!requirement)
	{
		fputs(msg.c_str(), stderr);
		fputs("\n", stderr);
		system("pause");
		exit(1);
	}
}

inline void assure(std::ifstream& in, const std::string& filename = "") // 这个就是文件输入流的检查,
{
	if (!in)
	{
		std::cout << "Could not open file." << std::endl;
		exit(1);
	}
}

inline void assure(std::ofstream& out, const std::string& filename = "")  // 这就是错误检查函数,
{

}

#endif

#include <iostream>
#include <cassert>
#include <fstream>
#include "cos.h"

using namespace std;

#define SRUARE (x) (x)*(x)  // 这个是C语言的预定义宏,是计算x*x的,它有缺点。总是出错,

inline double square(double x)  // 在函数前边加上inline就是内联函数,内联函数在编译的时候执行,内联函数主要是为了加快执行的速度,
{
	double result;
	result = x * x;
	return result;
}

int main()
{
	char* linePtr = (char *)malloc(1024);  // malloc 是动态分配内存,
	//if (linePtr == NULL)  // 这个就是检查linePtr 指针是否出错,
	//{
	//	cout << "malloc 失败。" << endl;
	//	return 0;
	//}
	//  assert(linePtr != 0); // assert 断言,
	require(linePtr != 0, "动态分配内存失败,"); //假如linePtr 是等于0,将输出的是 "动态分配内存失败,"


	string inFileName = "a.txt";
	ifstream in(inFileName);
	assure(in,inFileName); // 这个就是调用cos.h头文件里的判断头文件是否存在,
	 

	double c(6.0);
	cout << square(c) << endl;
	

	return 0;
}

你可能感兴趣的:(错误检查)