sstream 与 fstream的使用



#include "stdafx.h"



#include <atlbase.h>

#include <atlapp.h>

#include <atlmisc.h>



#include <iostream>

#include <sstream>

#include <fstream>



#include <string> 

#include <vector>

using namespace std;



double reverse_double(double arg)

{

	ostringstream oss;

	oss << arg;

	string str = oss.str();

	for (int i = 0; i < str.size()/2; ++i)

	{

		char temp;

		temp = str[i];

		str[i] = str[str.size()-i-1];

		str[str.size()-i-1] = temp;

	}

	istringstream iss(str);

	iss >> arg;

	return arg;

}







int _tmain(int argc, _TCHAR* argv[])

{

	/*istringstream istr;

	istr.str("1 56.7");

	//上述两个过程可以简单写成 istringstream istr("1 56.7");

	cout << istr.str()<<endl;

	int a;

	float b;

	istr>>a;

	cout<<a<<endl;

	istr>>b;

	cout<<b<<endl;*/

	

	/*ostringstream ostr; 

	//ostr.str("abc");

//如果构造的时候设置了字符串参数,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长 

	ostr.put('d'); 

	ostr.put('e'); 

	ostr<<"fg"; 



	string gstr = ostr.str(); 

	cout<<gstr; 

	system("pause"); */



	/*stringstream ostr("ccc"); 

	ostr.put('d'); 

	ostr.put('e'); 

	ostr<<" fg"; 

	string gstr = ostr.str(); 

	cout<<gstr<<endl; 



	char a; 

	ostr>>a; 

	cout<<a<<endl;

	const char *p =ostr.str().c_str();

	cout<<p<<endl;

	cout<<ostr.str()<<endl;*/



	/*string t; 

	int i = 120; 

	stringstream stream; 

	stream<<i; 

	stream>>t; 

	cout<<t<<endl;*/

	/*wistringstream istring; 

	wstring ss(L"我我我神ss 8346520"); 

	istring.str(ss); 

	int i=0; 

	wstring s; 

	

	istring>>s>>i; 

	CString str(s.c_str());

	

	wcout<<s<<" "<<i<<endl;

*/



	/*

	istringstream istring; 

	string ss("ss 8346520 333"); 

	istring.str(ss); 

	int i=0; 

	string s; 

	istring>>s;

	istring>>i; 

	istring>>i; 

	cout<<s<<" "<<i<<endl; 

	*/



	/*string s="test"; 

	int i=8346520; 

	int j=0; 

	string s1; 

	ostringstream ostring;//不能写成ostringstream ostring<<s<<" "<<i; 

	ostring<<s<<" "<<i; 

	cout<<ostring.str()<<endl;//ostring流内保存内容是 test 8346520 

	istringstream istring(ostring.str()); 

	istring>>s1>>j;//要注意此处的顺序; 

	cout<<s1<<"――――"<<j<<endl; 

	*/

	/*ifstream infile("c:/in.txt");//或者ifstream infile;infile.open("1.txt"); 

	infile.close();//fstream对象只能与1个文件关联,所以打开另外一个,必须关闭上一个; 

	infile.clear();//如果是循环创建fstream流的话,.close()和clear()函数就应该重视; 

	infile.open("d:/in1.txt");//文件夹地址应使用反斜杠;

	if(infile){//使用前检测状态是个好习惯 

		string s; 

		int b;

		string m;

		infile>>s>>b>>m;//将读取文件里第1个单词;getline(infile,s);将读取文件里的第1行 

		cout<<s<<b<<m<<endl; 

	} */



	//将double倒排

	double num = 2345.78;

	cout << num << " " << reverse_double(num) << endl;



	//将string倒排

	string sss="Hello world";

	for(int i=0; i<sss.size()/2; i++)

	{

		char temp;

		temp = sss[i];

		sss[i] = sss[sss.size()-i-1];

		sss[sss.size()-i-1] = temp;

	}

	cout<<sss<<endl;



	//读取文本,将每个单词从后到前排

	wifstream in("c://in.txt");

	vector<wstring> wVec;

	wstring wStr;

	if(in)

	{

		while(!in.eof())

		{

			in>>wStr;

			wVec.push_back(wStr);

			wcout<<wStr<<"__";

		}

		wVec.pop_back();

		cout<<"-----------------------"<<endl;

	}



	vector<wstring>::reverse_iterator  vw_rIter;

	for(vw_rIter = wVec.rbegin(); vw_rIter < wVec.rend(); vw_rIter++)

	{

		wcout<<*vw_rIter<<"__";

	}



	system("pause");



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值