// 23_23-2.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <sstream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	string buf = "abcd 255 1f 1234.56";
	istringstream istr(buf);	// buf内容で初期化
	string ss, buf2 = "DDDD EEEE FFFF";
	char cc[] = "GGG HHH III";
	int idt;
	double ddt;

	cout << "-----先頭から文字列として読み込む\n";
	while (istr >> ss) {
		cout << ss << '\n';
	}

	cout << "-----eofになっているのでクリアする\n";
	cout << "eof=" << istr.eof() << '\n';
	istr.clear();
	cout << "eof=" << istr.eof() << '\n';

	cout << "-----先頭から5文字目に移動して文字列を1つ読み込む\n";
	istr.seekg(5, ios_base::beg);
	istr >> ss;
	cout << ss << '\n';

	cout << "-----先頭に移動し数値も正しく読み込む\n";
	istr.seekg(0, ios_base::beg);
	istr >> ss;
	cout << ss << '\n';
	istr >> idt;
	cout << idt << '\n';
	istr >> hex >>idt;
	cout << idt << '\n';
	istr >> ddt;
	cout << ddt << '\n';
	istr.clear();

	cout << "-----入力ストリーム内容を文字列で再設定する\n";
	istr.str("AAAA BBBB CCCC");
	while (istr >> ss) {
		cout << ss << '\n';
	}
	istr.clear();

	cout << "-----入力ストリーム内容をstringで再設定する\n";
	istr.str(buf2);
	while (istr >> ss) {
		cout << ss << '\n';
	}
	istr.clear();

	cout << "-----入力ストリーム内容をchar[]で再設定する\n";
	istr.str(cc);
	while (istr >> ss) {
		cout << ss << '\n';
	}

	MessageBox(NULL, _T("Check Console Window"), L"MessageBox", MB_OK);

	return 0;
}

