■ファイル入出力のサンプルソース
#include <fstream> #include <string> #include <iostream> #include <stdio.h> using namespace std; int main() { string line,file_name_cas,file_name_msh; string temp_str; int i,i_max; cout << "casファイル:"; cin >> file_name_cas; i_max=file_name_cas.length(); for(i=0;i<=i_max;i++){ if(file_name_cas.substr( i, 1 )=="."){ file_name_msh+=file_name_cas.substr( i, 1 )+"msh"; break; } file_name_msh+=file_name_cas.substr( i, 1 ); } ifstream ifs(file_name_cas.c_str());//ファイル名引数はchar型で入力 if(!ifs.is_open()){ cout << file_name_cas << "が存在しません。"; //system("pause"); return 0; } ofstream ofs(file_name_msh.c_str());//ファイル名引数はchar型で入力 ofstream ofs_node( "node" ); ofstream ofs_face( "face" ); ofstream ofs_cell( "cell" ); ofstream ofs_zone( "zone" ); ofs << "(0 Dimension)" << endl << "(2 3)" << endl; while (!ifs.eof()) { getline(ifs, line); temp_str=line.substr( 0, 3 ); //------node書き込み if(line.substr( 0, 3 )=="(10"){ if(line.substr( 0, 6 )=="(10 (0"){ ofs_node << line << endl; } else{ while (line.substr( 0, 2 )!="))"){ ofs_node << line << endl; getline(ifs, line); if(line.substr( 0, 2 )=="))"){ ofs_node << line << endl; } } } } //------cell書き込み else if(line.substr( 0, 3 )=="(12"){ if(line.substr( 0, 6 )=="(12 (0"){ ofs_cell << line << endl; } else{ while (line.substr( 0, 3 )!="(45"){ ofs_cell << line << endl; getline(ifs, line); //------zone書き込み if(line.substr( 0, 3 )=="(45"){ ofs_zone << line << endl; } } } } //------face書き込み else if(line.substr( 0, 3 )=="(13"){ if(line.substr( 0, 6 )=="(13 (0"){ ofs_face << line << endl; } else{ while (line.substr( 0, 3 )!="(45"){ ofs_face << line << endl; getline(ifs, line); //------zone書き込み if(line.substr( 0, 3 )=="(45"){ ofs_zone << line << endl; } } } } //---------------------------------- } //------一時ファイルクローズ ifs.close(); ofs_node.close(); ofs_face.close(); ofs_cell.close(); ofs_zone.close(); //-------------------------------------------------- // ファイルの結合 //-------------------------------------------------- ifstream ifs_node( "node" ); ifstream ifs_face( "face" ); ifstream ifs_cell( "cell" ); ifstream ifs_zone( "zone" ); ofs << ifs_node.rdbuf() << endl; ofs << ifs_face.rdbuf() << endl; ofs << ifs_cell.rdbuf() << endl; ofs << ifs_zone.rdbuf() << endl; //------一時ファイルクローズ ofs.close(); ifs_node.close(); ifs_face.close(); ifs_cell.close(); ifs_zone.close(); //------一時ファイル削除 remove("node"); remove("face"); remove("cell"); remove("zone"); //system("pause"); return 0; }
タグ
コメントをかく