使用(C++库)ifstream读文件数据

入门计划->使用(C++库)ifstream读文件数据 选择自 awzzz 的 Blog
关键字 入门计划 C++ ifstream 读文件 读文件数据
出处
收藏+原创
//awzzz@2002
//入门计划->使用(C++库)ifstream读文件数据
//APO->using ifstream.
//accidence project of using ifstream.(c++ iostream library)

/*
  Reference: http://www.cplusplus.com/ref/iostream/ifstream/

  Description

  ifstream class provides a stream interface to read data from files.

  The class mantains internally (privately) a pointer to a filebuf object
  in charge of the interaction with the file. This pointer can be
  obtained/modified by calling member rdbuf.

  The file to be processed can be specified as a parameter for the
  constructor or by calling member open.

  After a file is processed it can be closed by calling member close.
  In this case the file stream may be used to open another file.

  Member is_open can be used to determine wether the stream is currently
  operating on a file or not.

  Please refer to parent classes for more details on information mantained
  by an ifstream object.
*/

//使用(C++库)ifstream读文件数据
//simple example

#include <iostream>
#include <fstream>
using namespace std;

#ifdef WIN32
#define TEST_FILE   "c://tmp//test.txt"
#else
#define TEST_FILE   "/tmp/test.txt"
#endif

void get()
{
    //ifstream ifs;
    //ifs.open(TEST_FILE);
    ifstream ifs(TEST_FILE);

    //while (ifs.good()) cout << (char) ifs.get();//simple
    while (ifs.good()) {
        
        char ch = 0;
        //ch = ifs.get();
        ifs.get(ch);

        cout << ch;
    }

    ifs.close();
}

void getline()
{
    //ifstream ifs;
    //ifs.open(TEST_FILE);
    ifstream ifs(TEST_FILE);

    while (ifs.good())
    {
        char buf[1024] = {0};
        ifs.getline(buf, sizeof(buf));

        cout << buf << endl;
    }

    ifs.close();
}

int main(int argc, char* argv[])
{   
    get();
    getline();
    return 0;
}

你可能感兴趣的:(Stream)