c++ 파일입출력 질문입니다.

2000yak의 이미지

질문이있습니다.. 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();
}