[CPP] file 입출력 : space data

simpled 2013.06.23 15:04 조회 수 : 5257

010.png

<그림 1>



011.png

<그림 2>



위의 숫자들은 Recurdyn프로그램으로 볼 수 있는, One Point의 시간에 대한 Trajectory(x,y)값이다.

위 데이터들을 엑셀로 옮기면 <그림 2>와 같이 셀이 나누어지지 않는 문제점이 발생한다. 

이유는 <그림 1>의 상단과 같이, 숫자와 숫자 사이에 Tab으로 나누어지지 않는다는 것이다.


이 문제는 상당히 쉽게 해결했다.


아래는 소스코드다.


아 텍스트 맨 끝에는 파일의 종료를 알리는 

EOF 텍스트 대신 내 생일인 220을 넣었다.



#include <iostream>

#include <fstream>

#include <string>

 

using std::cout;

using std::endl;

using std::cin;

 

using std::ifstream;

using std::ofstream;

using std::fstream;

using std::ios;

 

#define TEXT "YGD.txt"

 

class clFileClass

{

        public:

               double dMax;

               double dMin;

 

               int iCount;

        bool cAccount_Insp(char *_cAccount);

        bool cAccount_Make(char *_cAccount);

        bool cAccount_Output   (char *_cAccount);

 

};

 

bool clFileClass::cAccount_Insp(char *_cAccount)

{

        ifstream InspFile;

        double dTemp=0.0;

 

        this->dMax = 0.0;

        this->dMin = 0.0;

 

        InspFile.open(_cAccount);

 

               while(1)

               {

                       InspFile >> dTemp;

                                            

                       if(219<dTemp && dTemp<221)

                       {

                              cout<<최대값:"<<dMax<<endl;

                              cout<<최소값:"<<dMin<<endl;

                              InspFile.close();

                              return true;

                       }

                      

                       if(dMax<=dTemp)        dMax=dTemp;

                       if(dMin>=dTemp)        dMin=dTemp;

               }

              

       

    return false;

}

 

bool  clFileClass::cAccount_Make(char *_cAccount)

{

        ofstream OutputFile;

        OutputFile.open(_cAccount);

        if(!OutputFile)

        {

               cout <<"***********************n"

                    <<파일생성실패n"

                    <<"***********************n"<<endl;

               return false;

        }

        OutputFile.close();

 

                          cout <<파일생성완료: " <<_cAccount <<endl;

        return true;

}

 

bool clFileClass::cAccount_Output(char *_cAccount)

{

        ofstream OutputFile;

               ifstream InspFile;

              

               double dTemp;

              

        //파일열기

        OutputFile.open(_cAccount);

               OutputFile.setf(ios::fixed);

               OutputFile.setf(ios::showpoint);

               OutputFile.precision(20);

 

               InspFile.open("File.txt");

               InspFile.setf(ios::fixed);

               InspFile.setf(ios::showpoint);

               InspFile.precision(20);

 

               while(1)

               {

                       InspFile >> dTemp;

                      

                       if(219<dTemp && dTemp<221)

                       {

                              // 파일닫기

                              OutputFile.close();

                              InspFile.close();

                              return true;

                       }

                       if(dMin<dTemp && dTemp<dMax)

                       {

                              iCount++;

                             

                              OutputFile     <<dTemp<<"t";

                             

                              if(iCount==2)

                              {      

                                      iCount=0;

                                      OutputFile     << endl;

                              }

 

                       }

 

               }

              

               cout<<"종료"<<endl;

}

 

 

int main(void)

{

    clFileClass clFile;

        clFile.iCount=0;

 

        cout <<"step1 : File.txt파일읽기"<<endl;

        clFile.cAccount_Insp("File.txt");

        cout <<endl;          

 

        cout<<"step2"<<endl;

    clFile.cAccount_Make(TEXT);

    cout <<endl;

       

        cout<<"step3"<<endl;

    clFile.cAccount_Output(TEXT);

    cout<<endl;

 

        cout <<"종료확인"<<endl;

 

    return 0;

}


번호 제목 글쓴이 날짜 조회 수
» [CPP] file 입출력 : space data file simpled 2013.06.23 5257
28 [CPP] 1차 방정식을 통한 y값 구하기 simpled 2013.06.23 5777
27 [CPP] Vector 계산 클래스 (v2.0) file simpled 2013.06.23 4675
26 [CPP] 자리수 표현 simpled 2013.06.23 5618
25 [CPP] 각도 클래스(+ 아크탄젠트 리턴값 조정) file simpled 2013.06.23 6024
24 [CPP] 벡터 계산 클래스 file simpled 2013.06.23 6090
23 [CPP] file 입출력 simpled 2013.06.23 4964
22 [CPP] 수치해석 : Rectangle Method 구분구적분 (적분 프로그래밍) simpled 2013.06.23 8111
21 [CPP] 분포하중 _ Beam의 SFD, BMD 값 simpled 2013.06.23 6471
20 [CPP] OOP6. CPP Programming :: Virtual Banking system PPT [끝] file 심플디 2013.06.23 6607
19 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.8 file simpled 2013.06.23 5920
18 [CPP] OOP6. CPP Programming :: Virtual Banking system 모듈프로그램들 file simpled 2013.06.23 5244
17 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.7 file simpled 2013.06.23 5954
16 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.6 file simpled 2013.06.23 6287
15 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.5.1 file simpled 2013.06.23 6442
14 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.5 file simpled 2013.06.23 6620
13 [CPP] -----------------------------------절취선----------------------------------- simpled 2013.06.23 5830
12 [CPP] Banksys 휴식 simpled 2013.06.23 6496
11 [CPP] OOP5. CPP Programming :: Virtual Banking system v3.0.2 [Class design3. String Sorting] simpled 2013.06.23 5612
10 [CPP] OOP5. CPP Programming :: Virtual Banking system v3.0.2 [Class design2. File I/O] simpled 2013.06.23 6548