29-1b.cpp

来自「effective stl 源代码 code」· C++ 代码 · 共 55 行

CPP
55
字号
//
// Example from ESTL Item 29
//
// To compile under Borland 5.5.1, have your bcc32.cfg file include the line:
//		  -D_RWSTD_COMPILE_INSTANTIATE
//

#include <string>
#include <iostream>
#include <iterator>
#include <fstream>
#include "ESTLUtil.h"

int main()
{
	using namespace std;
	using namespace ESTLUtils;


	{
		ifstream inputFile("interestingData.txt");

		string fileData((istream_iterator<char>(inputFile)),	// read inputFile into
						 istream_iterator<char>());				// fileData; see below
																// for why this isn't
																// quite right, and see
																// Item 6 for a warning
																// about this syntax
		cout << "After initializing, fileData = " << endl << fileData << endl;
	}

	{
		ifstream inputFile("interestingData.txt");

		inputFile.unsetf(ios::skipws);							// disable the skipping of
																// whitespace in inputFile

		string fileData((istream_iterator<char>(inputFile)),
						istream_iterator<char>());

		cout << "After initializing, fileData = " << endl << fileData << endl;
	}

	{
		ifstream inputFile("interestingData.txt");

		string fileData((istreambuf_iterator<char>(inputFile)),
					istreambuf_iterator<char>());
		cout << "After initializing using istreambuf_iter, fileData = " << endl <<
					fileData << endl;
	}

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?