BornLeader
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору SHIRATANI #include <fstream> #include <iostream> #include <vector> #include <string> using namespace std; class CMatrix { vector<vector<double> > m_Data; public: explicit CMatrix(int col=1,int row=1) { Resize(col,row); } ~CMatrix(void){}; void Resize(size_t col,size_t row) { m_Data.resize(col); for(size_t i = 0;i<col;i++) m_Data[i].resize(row); } size_t GetCol(void)const{return m_Data.size();} size_t GetRow(void)const{return m_Data[0].size();} void SetValue(size_t col,size_t row,double value) { if((col<m_Data.size())&&(row<m_Data[0].size())) { m_Data[col][row] = value; } } double GetValue(size_t col,size_t row)const{return m_Data[col][row];} friend ostream& operator<<(ostream& os,CMatrix& matrix) { for(size_t i = 0;i<matrix.GetRow();i++) { for(size_t j = 0;j<matrix.GetCol();j++) os << matrix.GetValue(j,i) << ' '; os << endl; } return os; } friend string& operator>>(string& str,CMatrix& matrix) { char* p; if(p = strtok((char*)str.c_str()," ")) matrix.SetValue(0,0,atof(p)); int i = 1; int nLine = 0; while(p = strtok(NULL," ")) { matrix.SetValue(i,nLine,atof(p)); i++; if(i==matrix.GetCol()) { nLine++; i = 0; } } return str; } }; int main(void) { ifstream ifs("task.txt"); if(!ifs) cerr << "file not found!"; CMatrix myArray(6,1); CMatrix myMatrix(6,6); string str,sMatrix; getline(ifs,str); str >> myArray; while(getline(ifs,str)) { sMatrix += (str+" "); } sMatrix >> myMatrix; cout << "myArray:\n" << myArray << endl; cout << "myMatrix:\n" << myMatrix << endl; return 0; } |