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();
}
 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.