'전체 글'에 해당되는 글 895건

  1. 2008.05.27 File To String in C++

2008. 5. 27. 18:13 devel/etc

File To String in C++

method1

  ifstream infile;
  infile.open ("input.txt");
 
if (infile.is_open())
  {
    while (infile.good())
 {



  infile >> str;                                         //stream으로 넘기면 공백, \n 파싱 자동으로 됨
                                                                //웃긴건 str을 int형으로 선언하면 int 형으로 들어간다
  cout<< str<<endl;                                
  tmp =  (char) infile.get();                          //char 형으로 들어감(int로 들어와서)
 }                                                         //.getline() 하면 어케 들어갈지 궁금(string으로 될듯?)
    infile.close();
  }


자세한건 ifstream의 member function을 찾아보도록



  else
  {
    cout << "Error opening file";
  }






 method2
1.파일을 불러들인다
2.파일의 개행문장을 한줄씩 vector에 저장한다
3.저장된 vector의 값을 istringstream을 이용하여 개별단어별로 출력한다

이상입니다.

============================================


//프로그램에서 사용할 헤더파일의 로드
#include<iostream>
#include<vector>
#include<string>
#include<fstream>
#include<sstream>

//표준 이름공간 사용 선언
using namespace std;      

//파일로 부터 읽어들여서 벡터로 store하는 함수의 선언
void store(vector<string> &vv)
{
        //datafile.txt를 읽어들인다
        ifstream file_in("datafile.txt", ios::in);
        //문자열을 읽어들이기 위한 buffer의 선언
        char buffer[100];          
   
        //최대 100글자, 한줄씩 buffer에 저장한다
        while(file_in.getline(buffer, 100, '\n')!=NULL)
    {
                //buffer에 저장된 값을 string type인 벡터로 넣기 위한 string type 변수 tmp의 선언
                string tmp;
                //tmp 에 buffer의 값을 넣는다
            tmp = buffer;
                //벡터 vv에 tmp를 push_back한다
            vv.push_back(tmp);
        }
        //파일의 끝까지 읽고 파일을 닫는다
    file_in.close();    
}

//벡터로 읽어들인 파일의 개행문장을 단어(word)별로 출력하는 함수 print의 선언
void print(vector<string> &vv)
{
        //vector vv의 사이즈만큼 루프를 수행한다
        for (int ii = 0 ; ii != vv.size() ; ++ii )
        {
                //string type 변수 line과 word의 선언
                string line, word;
                //변수 line에 vector vv의 [ii]번째 요소를 반환해서 집어넣는다
                line = vv[ii];

                //line에 저장된 값을 출력하고 사용자의 이해를 돕기 위한 내용문 출력
                cout << endl << "ivec[" << ii << "]에 파일로부터 읽어들여 저장되어있는 한 문장 : "
                         << endl << line << endl
                         << "=========================================================================="
                         << endl << "이하는 각각 단어별로 출력하기 : " << endl << endl;
               
                //istringstream을 이용해 string type 변수 line에 저장된 값을 임시저장한다
                istringstream stream(line);
                //stream이 '\n'을 만날때까지 while구문을 수행한다
                //빈칸을 제외한 각각의 개별 단어를 string type 변수 word에 저장한다
                while (stream>>word)
                {
                        //저장된 word를 한줄씩 화면에 출력한다
                        cout << word << endl;
                }
        //사용자가 한 화면에 한 문장씩 보기 수월하도록 넣은 선택문
        char cmd;
        cout << endl << "계속하시겠습니까? (y/n) : ";
        cin >> cmd;
        //y를 입력하면 for loop 문장을 계속 수행
        if ( cmd == 'y' )
                continue;
        //y가 아니면 loop문장을 빠져나간다
        else break;
        }
}

//main함수의 선언
void main(void)
{
        //datafile의 값을 저장할 string type의 vector ivec의 선언
        vector<string> ivec;


        //store함수를 이용하여 ivec에 한줄씩 string으로 저장
    store(ivec);
        //print함수를 이용하여 ivec에 저장된 line을 word별로 한줄씩 출력
        print(ivec);

}

'devel > etc' 카테고리의 다른 글

Makefile 쉬운 예제  (1) 2009.10.17
윤드림훃의 주옥같은 글  (0) 2009.10.17
Debug Mode - Enable  (0) 2009.01.02
simple fgets source code  (0) 2008.12.02
class member 접근과 클래스 내에서 클래스 선언해서 쓰기  (0) 2007.04.26
Posted by 쵸코케키

블로그 이미지
chocokeki
쵸코케키

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함