牛骨文教育服务平台(让学习变的简单)
博文笔记

c++流常见操作

创建时间:2016-05-29 投稿人: 浏览次数:612

记下输入输出流、文件流、字符串流的常见操作。


1.基本操作-读入

vector<wstring> vcLines;

wstring inStr;
while (getline(wcin, inStr))
{
    vcLines.push_back(inStr);
}

需要引入#include <iostream>


2.输出宽字符

默认控制台是ANSI编码,要输出对应宽字符,需要制定locale来保证输出时完成对应的编码转换,

引入#include <locale.h>

并在开始输出前如下设置。

setlocale(LC_ALL, "chs");

3.流状态管理

可以通过检查当前流状态来判断当前输入输出状态,如下打开文件,需要引入#include <fstream>

/*
ios::in		为输入(读)而打开文件
ios::out	为输出(写)而打开文件
ios::ate	初始位置:文件尾
ios::app	所有输出附加在文件末尾
ios::trunc	如果文件已存在则先删除该文件
ios::binary	二进制方式
*/
bool open_file(wchar_t* pPath, wofstream& my_f)
{
	//重复打开时,注意清空和关闭流状态
	//my_f.clear();
	//my_f.close();

	my_f.open(pPath, ios::out|ios::trunc);

	if (my_f.good())
	{
		return true;
	}
	return false;
}

如下,依次输出输出流的三种状态,只要有一个为true,则good判断的状态为false

wcout << L"IO State:" << cin.bad() << cin.fail() << cin.eof() << endl; 

4.打开和保存到文件中

	//保存到文件中
	wofstream ofs;
	if (!open_file(L".\1.txt", ofs))
	{
		wcout << L"打开文件失败" << endl;
		return 0;
	}

	ofs.close();

5.转换数据

需要引入#include <sstream>

	//转换数据
	wstringstream str;
	int a,b,c;
	str << L"123 456 789";
	str >>a >> b >> c;
	wcout << L"Trans Result:" << a << L" " << b << L" " << c;

本文完整演示代码下载链接

原创,转载请注明来自http://blog.csdn.net/wenzhou1219

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。