常用io库学习(C++)
头文件:iostream、fstream、sstream
1. 常用io流
1.1、cin、cout:(注意加using namespace std)
cin:标准输入流(读取结束:空格),cout:标准输出流;getline:按行读取(读取结束:回车)
while (cin>>a)
{
cout << "10*a:" << 10 * a << endl;
}//注意当输入为非数字时,流状态就为false,循环会退出
string line;
while(getline(cin,line))
{
cout<<line<<endl;
}
1.2管理流状态
cin.clear()//使cin有效
auto state=cin.rdstate()//保存当前cin状态
2.文件输入输出流(fstream)
fstream继承自iostream,在使用时,注意调用相对应的头文件
2.1 ifstream、ofstream、fstream类基本使用
注意:这里的file_path要写绝对路径,相对路径容易报错
#include<fstream>
//文件流对象
ifstream in(file_path);//文件读入
ofstream out(file_path);//文件写入
//ofstream in(file_path,ios::app);//从文件末尾开始写
//fstream rw(file_path);//打开文件提供读写
//另一种写法
ofstream write;//定义一个空流
write.open(file_path,mode);//再打开指定文件,mode为打开文件方式(文件模式)
//文件流使用例子(使用继承<<、>>、getline)
string ss;
if(in.is_open())
{
cout << "文件打开成功" << endl;
}
in>>ss;//操作符>>继承的istream,读入到ss
out<<ss;//将ss读入到文件中
getline(in,ss);//按行读
//文件流使用例子(使用自己的成员函数)
int n=55;
in.read((unsigned char*)n, sizeof(n));//读取一个整数
out.write(ss,strien(ss));//写入字符串ss
in.close();//文件流关闭
in.clear();//clear之后才能进行新的再次读取
out.close();
out.clear();
2.2文件流:文件模式(mode)
每个文件流都有该模式;
模式 | 功能 |
---|---|
in | 只读(ifstream、fstream) |
out | 只写(ofstream、fstream) |
app | 每次写操作定位到文件尾部 |
ape | 每次读操作定位到文件尾部 |
binary | 以二进制的方式进行读写 |
3.string 流学习(头文件为:sstream)
//例子,string转换为int
string s=”12344“;
int a;
stringstream ss;
ss<<s;
ss>>a;//a最后值为12344;
istringstream:读字符串;ostringstream:写字符串;stringstream:读写字符串