[CPP] file 입출력

simpled 2013.06.23 14:58 조회 수 : 4977

/*
어느 프로그램이나, 프로그램의 사용자는 프로그램에게 변수를 입력 시켜야 하고,
프로그램은 그 내부에서 각종 처리를 한 후에 사용자에게 결과를 보여줘야 한다.

API는 Edit의 입력에 있어서 실수를 입력/출력 할 수 없는 단점을 지니고 있다.
이에 별 수단을 다 써보았고, 결국 내가 낸 답은 파일 입출력을 사용하는 것이다.
3.141592 를 문자열로 파일에 쓴다. -> 3.141592 를 double로 프로그램에서 읽게 한다.
를 한 큐에 해결함으로써, Edit로 double형 data를 입력받게 하려한다.

이 모듈은 이전에 Virtual Banking system 시리즈에서 사용되었던 것이다.

확인해보니, code blocks에서는 인식하지 못한다.
vc++ 2008로 돌려보시길 권장한다.
 */

#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;

 

class clFileClass

{

        // ifstream IpspFile;

        // ofstream OutputFile;

private:

        // Test Text :    1111-2222-3333-4444-55

public:

        // 파일존재유무를검사

        bool cAccount_Insp(char *_cAccount);

 

        // 파일의생성

        bool cAccount_Make(char *_cAccount);

 

        // Valuefile로출력(나의입장에서는파일에내용을"출력하는것")

        bool cAccount_Output   (char *_cName, char *_cNumber, char *_cAddress, bool _bAccount, char *_cBankName, char *_cAccount, char *_cPassword, int _iMoney, bool _bCard,   char *_cCardID, char *_cCardPW, bool _bInternet, char *_cInternetID, char *_cInternetPW);

 

        // 파일내용을화면에입력(나의입장에서는파일의내용을"읽어오는것")

        bool cAccount_Input(char *_cAccount);


};

 

bool clFileClass::cAccount_Insp(char *_cAccount)

{

        ifstream IpspFile;

        IpspFile.open(_cAccount);

        if(!IpspFile)

        {

               IpspFile.clear(true,true);

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

                              <<_cAccount<<"n"

                              <<계좌가존재하지않음n"

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

               IpspFile.close();

               return false;

        }

        IpspFile.close();

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

                       <<계좌가존재합니다n"

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

        return true;

}

 

bool  clFileClass::cAccount_Make(char *_cAccount)

{

        ofstream OutputFile;

        OutputFile.open(_cAccount);

        if(!OutputFile)

        {

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

                              <<파일생성실패n"

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

               return false;

        }

        OutputFile.close();

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

                       <<" File Making: " <<_cAccount

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

        return true;

}

 

bool clFileClass::cAccount_Output     (char *_cName, char *_cNumber, char *_cAddress, bool _bAccount, char *_cBankName, char *_cAccount,   char *_cPassword, int _iMoney, bool _bCard,   char *_cCardID, char *_cCardPW, bool _bInternet, char *_cInternetID, char *_cInternetPW)

{

        ofstream OutputFile;

 

        //파일열기

        OutputFile.open(_cAccount);

        if(!OutputFile)

        {

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

                    <<" File을열수없음n"

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

               return false;

        }

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

             <<" File Writing: " <<_cAccount<<"n"

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

        // 개인정보

        OutputFile             <<_cName               <<endl;

        OutputFile             <<_cNumber             <<endl;

        OutputFile             <<_cAddress            <<endl;

 

        // 계좌정보

        OutputFile             <<_bAccount            <<endl;

        OutputFile             <<_cBankName           <<endl;

        OutputFile             <<_cAccount            <<endl;

        OutputFile             <<_cPassword           <<endl;

        OutputFile             <<_iMoney              <<endl;

 

        // 카드정보

        OutputFile             <<_bCard               <<endl;

        OutputFile             <<_cCardID             <<endl;

        OutputFile             <<_cCardPW             <<endl;

 

        // 통신정보

        OutputFile             <<_bInternet           <<endl;

        OutputFile             <<_cInternetID         <<endl;

        OutputFile             <<_cInternetPW         <<endl;     

 

        // 파일닫기

        OutputFile.close();

        return true;

}

 

bool clFileClass::cAccount_Input(char *_cAccount)

{

        char cTemp[120];

        char bTemp;

        int iTemp;

 

        ifstream InputFile;

        InputFile.open(_cAccount);

        if(!InputFile)

        {

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

                       <<" File을열수없음n"

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

               return false;

        }

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

        // 개인정보

        for(int i=0; i<3; i++)

        {

               InputFile>>cTemp;

               cout <<cTemp<<endl;

        }

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

        // 계좌정보

        InputFile>>bTemp;

        cout <<bTemp<<endl;

        for(int i=0; i<3; i++)

        {

               InputFile>>cTemp;

               cout <<cTemp<<endl;

        }

        InputFile>>iTemp;

        cout <<iTemp<<endl;

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

        // 카드정보

        InputFile>>bTemp;

        cout <<bTemp<<endl;

        for(int i=0; i<2; i++)

        {

               InputFile>>cTemp;

               cout <<cTemp<<endl;

        }

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

        // 통신정보

        InputFile>>bTemp;

        cout <<bTemp<<endl;

        for(int i=0; i<2; i++)

        {

               InputFile>>cTemp;

               cout <<cTemp<<endl;

        }

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

        cout <<endl;

}

 

int main(void)

{

        clFileClass clFile;

 

        cout <<"*파일검색을시작합니다."<<endl;

        clFile.cAccount_Insp("1111-2222-3333-4444-55");

        cout <<endl;

 

        cout <<"*파일생성을시작합니다."<<endl;

        clFile.cAccount_Make("1111-2222-3333-4444-55");

        cout <<endl;

 

        cout <<"*파일에Data를넣습니다."<<endl;

        clFile.cAccount_Output("신동석""100123-1001111""대전시_유성구_대정동_68-1번지_103"true"농협""1111-2222-3333-4444-55""4321", 3000, true"1212-3434-4545-6565""1134"true"memory304""6645");

        cout<<endl;

 

        cout <<"*파일의Data를불러옵니다."<<endl;

        clFile.cAccount_Input("1111-2222-3333-4444-55");

        cout<<endl;

 

        return 0;

}

번호 제목 글쓴이 날짜 조회 수
29 [CPP] file 입출력 : space data file simpled 2013.06.23 5271
28 [CPP] 1차 방정식을 통한 y값 구하기 simpled 2013.06.23 5790
27 [CPP] Vector 계산 클래스 (v2.0) file simpled 2013.06.23 4687
26 [CPP] 자리수 표현 simpled 2013.06.23 5633
25 [CPP] 각도 클래스(+ 아크탄젠트 리턴값 조정) file simpled 2013.06.23 6040
24 [CPP] 벡터 계산 클래스 file simpled 2013.06.23 6103
» [CPP] file 입출력 simpled 2013.06.23 4977
22 [CPP] 수치해석 : Rectangle Method 구분구적분 (적분 프로그래밍) simpled 2013.06.23 8124
21 [CPP] 분포하중 _ Beam의 SFD, BMD 값 simpled 2013.06.23 6488
20 [CPP] OOP6. CPP Programming :: Virtual Banking system PPT [끝] file 심플디 2013.06.23 6623
19 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.8 file simpled 2013.06.23 5933
18 [CPP] OOP6. CPP Programming :: Virtual Banking system 모듈프로그램들 file simpled 2013.06.23 5257
17 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.7 file simpled 2013.06.23 5967
16 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.6 file simpled 2013.06.23 6304
15 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.5.1 file simpled 2013.06.23 6456
14 [CPP] OOP6. CPP Programming :: Virtual Banking system v3.5 file simpled 2013.06.23 6635
13 [CPP] -----------------------------------절취선----------------------------------- simpled 2013.06.23 5843
12 [CPP] Banksys 휴식 simpled 2013.06.23 6510
11 [CPP] OOP5. CPP Programming :: Virtual Banking system v3.0.2 [Class design3. String Sorting] simpled 2013.06.23 5627
10 [CPP] OOP5. CPP Programming :: Virtual Banking system v3.0.2 [Class design2. File I/O] simpled 2013.06.23 6563