c++ 파일입출력 질문입니다.
글쓴이: 2000yak / 작성시간: 화, 2015/03/24 - 12:54오후
질문이있습니다.. getline을 통해 while 문을 돌리는데 mode_ELEMENT4부분이 읽히지 않고 끝나버립니다... 이유를 모르겠습니다. 도움좀 부탁드립니다. 여러분
DATA 형식은 이렇게 되어있습니다.
문자
문자~
*Node
int형, double형, double형, double형
.
.
.
*Element, type=S4
int형, int형, int형,int형,int형
.
.
.
.
#include <iostream> #include <fstream> #include <string> #include <stdio.h> enum READ_MODE { MODE_NONE, MODE_NODE, MODE_ELEMENT3, MODE_ELEMENT4 }; #define num 80000 using namespace std; int main() { int mode = MODE_NONE; ifstream inp; string str; const string delims(", "); string space=", "; int dap=1; int count=0; ofstream out; inp.open("C:\\Users\\Jin\\Desktop\\자료\\full_model.inp"); out.open("convert.vtk"); if (!inp.is_open()) { cout<<"there is no file.!"<<endl; } while(getline(inp,str)) { out<<str<<endl; if (str.compare("*Node")==0) { mode = MODE_NODE; } else if (str.compare("*Element, type=S4")==0) { mode = MODE_ELEMENT4; }else if(str.compare("*Element, type=S3")==0) { mode = MODE_ELEMENT3; } else if (str.compare("Elset")==0) { mode = MODE_NONE; } if (mode == MODE_NODE) { int a; double b, c, d; inp>>a>>space>>b>>space>>c>>space>>d; if(dap!=a){ dap=a; out<<dap<<" "<<b<<" "<<c<<" "<<d<<endl; } } else if (mode == MODE_ELEMENT4) { int e,f,g,h,i; inp>>e>>space>>f>>space>>g>>space>>h>>space>>i; out<<e<<" "<<f<<" "<<g<<" "<<h<<" "<<i<<endl; out<<str<<endl; } else if (mode == MODE_ELEMENT3) { int j,k,l,m; inp>>j>>space>>k>>space>>l>>space>>m; out<<j<<" "<<k<<" "<<l<<" "<<m<<endl; } } inp.close(); }
Forums:
댓글 달기