⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compare.cpp

📁 浙江大学的悟空嵌入式系统模拟器
💻 CPP
字号:
#include "Compare.h"

#include <assert.h>
#include <iomanip>

#define LINE_CHAR 128

namespace ARM{

	Compare & Compare::instance()
	{
		static Compare comp;
		return comp;
	}

	Compare::~Compare()
	{
		if(out != NULL)
			delete out;
	}

	void Compare::clear(std::string file)
	{
		std::ofstream fs(file.c_str(), std::ios::out);
		fs.close();
	}

	bool Compare::open_file(std::string file)
	{
		out = new std::ofstream(file.c_str(), std::ios::app);
		if(out == NULL)
		{
			std::cerr << "open file: " << file << " error.";
			return false;
		}
		(*out) << std::endl;
		return true;
	}

	bool Compare::write_to_file(std::string content)
	{

		//std::ofstream out(file.c_str(), std::ios::trunc); 
		//assert( !out );
		(*out) << std::setw(8) << content << std::endl;
		return true;
	}

	bool Compare::append_to_file(std::string content)
	{
		//std::ofstream out(file.c_str(), std::ios::app); 
		//assert( !out );
		(*out) << std::setw(8) << content << std::endl;
		return true;
	}

	bool Compare::append_to_file(unsigned int val)
	{
       (*out) << std::setw(8) << val << std::endl;
		return true;
	}

	bool Compare::append_enter()
	{
		(*out) << std::endl;
		return true;
	}

	bool Compare::compare(std::string f1, std::string f2, int line_sum)
	{
		std::ifstream src(f1.c_str());
		std::ifstream des(f2.c_str());

		if(!src || !des)
		{
			std::cerr<< "unload the file" << std::endl;
			src.close();
			des.close();
			return false;
		}
		//unsigned int line_num = 1;
		char c1[LINE_CHAR],c2[LINE_CHAR];

		//f1.get
		//while(f1.eof() || !f2.eof())
		for(int i=1; i <= line_sum; i++)
		{
//			if(f1.eof() != f2.eof())
//			{
//				std::cout << "第 " << i <<" 行不对,有个文件已经结束" << std::endl;
//			}
			src.getline(c1, LINE_CHAR);
			des.getline(c2, LINE_CHAR);
			if(strcmp(c1, c2) !=0)
			{
				std::cout << "第 " << i <<" 行不对" << std::endl;
				return false;
			}
		}
		src.close();
		des.close();
		return true;
	}

	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -