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:


댓글 달기