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

📄 cyio.h

📁 本题要完成的是一组简单C表达的运算。所有表达式存放在文件 CExpression.txt 中
💻 H
字号:
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include<vector>
#include <iomanip>
using namespace std;
template<typename T>
void inVector(ifstream & f,vector<T> &v,int ndelm=1){
	T t;
	string str;
	stringstream s1;
	v.clear();
	getline(f,str);
	s1<<str;
	while (1)
	{ s1>>t;
	v.push_back(t);
	if (s1.eof()) break;
	s1.ignore(ndelm);
	
	cout<<"["<<v[v.size()-1]<<"]"<<"  ";
	}
	cout<<endl;


}

template<typename T>
void inNum(ifstream &f,T &p){
	T t;
	string str;
	stringstream s1;
	getline(f,str);
	s1<<str;
	s1>>p;
}

template<typename T>
void inMatrix(ifstream & f,vector<vector<T> > &v){
	string str;
	stringstream s1;
	
	T t;
	while (1){
		s1.clear();
		getline(f,str);
		s1<<str;
		vector<T> tv;
		while (1)
		{ s1 >>t;
		tv.push_back(t);
		if (s1.eof()) break;
		s1.ignore();
	//	cout<<"["<<tv[tv.size()-1]<<"]"<<"  ";
		}
		cout<<endl;
		v.push_back(tv);
		if (f.eof()) break;
	}

}

void inStr(ifstream& in,vector<string>& sv,string d){
	string str;

	stringstream ss;
	sv.clear();
	getline(in,str);
	int i,j;

	
	cout<<d<<endl;
	int m=0,last=0;

	for (i=0;i<str.size();i++){
		if (str[i]==d[m]){
			m++;
			
		}else {
			m=0;
		}
		if (m==d.size()){
			sv.push_back(string(str.begin()+last,str.begin()+i-m+1));
			last=i+1;
		}
	}
	sv.push_back(string(str.begin()+last,str.end()));
}
template<typename T>
ostream& operator<<(ostream& out,const vector<T>& v){
	size_t i;
	for (i=0;i<v.size();i++){
		out<<v[i]<<"  ";
	}
	out<<endl;
	return out;
}

template<typename T>
void coutVector(const vector<T>& v,int l=3,char ch=' '){
	size_t i;
	if (v.size() == 0) {
		cout<<"NULL VECTOR"<<endl;
		return ;
	}
	for (i=0;i<v.size();i++){
		
		if (ch=='[') {
			cout<<" ["<<v[i]<<"] ";
		}else if (ch=='('){
			cout<<" ("<<v[i]<<") ";
		}else {
			cout<<setw(l)<<v[i];
			cout<<ch;
		
		}
	}
cout<<endl;
}

template<typename T>
void foutVector(ostream& out,const vector<T>& v,int l=3,char ch=' '){
	size_t i;
	if (v.size() == 0) {
		out<<"NULL VECTOR"<<endl;
		return ;
	}
	for (i=0;i<v.size();i++){
		
		if (ch=='[') {
			out<<" ["<<v[i]<<"] ";
		}else if (ch=='('){
			out<<" ("<<v[i]<<") ";
		}else {
			out<<setw(l)<<v[i];
			out<<ch;
		
		}
	}
cout<<endl;
}
template<typename T>
void coutMatrix(const vector<T>& v,int l=3,char ch=' '){
	size_t i;
	for (i=0;i<v.size();i++){
		coutVector(v[i],l,ch);
	}
cout<<endl;
}

template<typename T>
void foutMatrix(ostream& out,const  vector<T>& v,int l=3,char ch=' '){
	size_t i;
	for (i=0;i<v.size();i++){
		foutVector(out,v[i],l,ch);
	}
cout<<endl;
}




void outLine(ostream &f,char* s="=",int n=40){
for (size_t i=0;i< n;i++) f<<*s;
f<<endl;
}
void outLine(char* s="=",int n=40){
for (size_t i=0;i< n;i++) cout<<*s;
cout<<endl;
}

⌨️ 快捷键说明

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