C++语言io流处理基本操作教程示例

 更新时间:2021年11月18日 10:56:46   作者:xr415  
这篇文章主要为大家介绍了C++语言io流处理的基本操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

一、输入输出流对象

cout:标准输出流

cerr:标准出凑  和cout(只是用于如果是错误时要输出的)

cin  :   标准输入

流对象常用的处理函数

输出字符 put()

输入字符:get()

输出字符串:write()

输入字符串getline()

char ch;
	cin.get(ch);
	cout << ch<<endl;
	cout.put(ch);
	getchar();//用来消除回车的
	cout << endl;
	//字符串的输入输出
	char str[20] = "";//要初始化不然会出现输出后最后无/0导致输出烫烫烫...
	cin.getline(str, 20);//这里更安全只能输入20个 多了只取前面20个
	cout.write(str,20);

流控制字符

//就是以你制定的要求去输出

要加上头文件#incude<iomanip>

boolalpha:  bool类型输出true或者false

setbase(n):设置整数为n的进制进行输出 n只能为8 16 10

    int num = 10;
	cout << setbase(8) << num << endl;
	cout << setbase(10) << num << endl;
	cout << setbase(16) << num << endl;

setfill(‘一个字符') : 设置填充字符

setw(n):设置输出的宽度

int num = 10;
cout<< setfill('s')<<setw(8) << num;

setprecision :设值有效位数包括整数

	double num = 3.14159;
	cout << setprecision(4) << num << endl;
	cout << setprecision(4) << num * 10 << endl;

前面一个是3.141后面一个是31.41

setiosflags(ios::left)//对齐方式左对齐setiosflagsios(ios:right)右对齐

二、字符流操作

头文件 #include<sstream>

字符流一般使用stringstream的对象

sstream

包括 isringstream  ostingstream  stringstream

一般用stringstream(可读可写)

stringstream的成员函数

string.str()//获取字符流对象中的字符串

string.str(const string&str)//改变字符流中的字符串

​stringstream s("sdflk");
	cout << s.str() << endl;
	s.str("ljsflk");
	s.str(string("sdljf"));
	//二种都可以 一个是构建一个string的无名对象传字符串
	cout << s.str() << endl;
 
​

字符流的一些基本操作

将数字转换为字符串
int num =1234;
cout<<to_string(num)<<endl//以字符串输出num
stringstream stream;
stream << num;//将num流入stream这个类中
stream >> str;//stream流出到str这个字符串中
cout << str << endl;

同时使用一个流对象多次转换的时候 必须使用clear清除同时也要二次流入在流出

不然是空流

stringstream stream;
	stream << num;//将num流入stream这个类中
	stream >> str;//stream流出到str这个字符串中
	cout << str << endl;
	string str2;
    //如果没有clear函数就没有把num流入到num2
	stream.clear();
	stream << num;
	stream >> str2;
	cout << str2 << endl;

三. 文件流流类

 头文件 #include<fstream>//ifstream 和ofstream

ofstream:打开文件,写文件

ifstream:打开文件,读操作

fstream:可读可写

mode:

ios::in 读的方式打开文件

ios::out 写的方式打开文件

ios::app追加的方式写文件

ios::ate 在已有的文件,文件指针指向文件末尾

ios::trunc文件不存在,创建文件

ios::binary二进制形式打开文件,默认方式是ascii码方式打开

ios::nocreat不创建的方式

ios::noreplace 不替换

组合方式使用 

用的是位或

ios::in|ios::out 可读写

ios::out|ios::binary二进制写的方式打开文件

判断文件是不是打开成功(防御性操作)

is_open()判断打开是否成功

!文件对象  判断打开文件是否成功

	fstream File;
	File.open("1.tex", ios::in | ios::out | ios::trunc);
	if (!File.is_open())
	{
		cout << "创建文件失败" << endl;
	}
	if (!File)
	{
		cout << "创建文件失败" << endl;
	}

 文件的读写操作

fstream Read("1.txt",ios::in);//读的方式打开文件///要有这个文件
fstream Write("2.txt",ios::out|ios::trunc);
//写的方式打开文件//没有这个文件就创建一个
	while (1)
	{
		char ch;
		Read.get(ch);
		if (Read.eof())
		{
			break;
		}
		Write.put(ch);
	}
	Read.close();
	Write.close();

四.文件指针定位

 ifstream://读

       istream&seekg(longt int pos);

       istream&seekg(long int pos,ios_base::seekdir begin)

ofstream://写

        ostream&seekp(long int pos):

        ostream&seekp(long int pos,ios_base::seekdir begin);

//ios_base::seekdir//位置

ios::beg 文件开始

ios::cur 文件当前

ios::end 结束位置

fstream read("1.txt", ios::in);
	read.seekg(5);//移动5个字节后
	char ch = read.get();//读取5个位置后的第一个
	cout << ch << endl;

空格也算

文件的一些指向操作

	fstream read("1.txt", ios::in);
	read.seekg(5);//移动5个字节后
	char ch = read.get();//读取5个位置后的第一个
	cout << ch << endl;
	read.seekg(0, ios::beg);
	ch = read.get();
	cout << ch << endl;
	read.seekg(-5, ios::end);//最后位置前面5个
	ch = read.get();
	cout << ch << endl;

以上就是C++语言io流处理基本操作示例的详细内容,更多关于C++语言io流处理的资料请关注脚本之家其它相关文章!

相关文章

  • C/C++实现马踏棋盘算法

    C/C++实现马踏棋盘算法

    这篇文章主要为大家详细介绍了C/C++实现马踏棋盘算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 浅谈C++反向迭代器的设计

    浅谈C++反向迭代器的设计

    本文主要介绍了浅谈C++反向迭代器的设计,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Qt结合OpenCV部署yolov5的实现

    Qt结合OpenCV部署yolov5的实现

    本文主要介绍了Qt结合OpenCV部署yolov5的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C语言简明分析指针与引用的具体用法

    C语言简明分析指针与引用的具体用法

    指针是一个实体,引用是一个别名;在汇编上,引用的底层是以指针的方式实现的,定义一个引用变量,相当于定义了一个指针,然后把引用内存的地址写到这个指针里面,当通过引用变量修改它所引用的内存时,它先访问了指针里面的地址,然后在这个地址的内存里面对值进行修改
    2022-05-05
  • C语言近万字为你讲透栈和队列

    C语言近万字为你讲透栈和队列

    对于线性表,我们可能要执行下列操作:访问表的第k个结点、在k这个结点之前或者之后插入一个新结点,抑或是删除第k个结点等等操作,其中我们会遇到值对第一个或者最后一个结点插入、删除、和访问值的线性表,我们给它们以特殊的名称:栈、队列、双端队列
    2022-05-05
  • C++中extern

    C++中extern "C"的用法

    这篇文章主要介绍了C++中extern "C"的用法,是深入理解C++所应该掌握的概念,需要的朋友可以参考下
    2014-08-08
  • C语言三分钟精通时间复杂度与空间复杂度

    C语言三分钟精通时间复杂度与空间复杂度

    算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小
    2022-02-02
  • C语言中的指针以及二级指针代码详解

    C语言中的指针以及二级指针代码详解

    这篇文章主要介绍了C语言中的指针以及二级指针代码详解,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • C语言实现简单飞机大战

    C语言实现简单飞机大战

    这篇文章主要为大家详细介绍了C语言实现简单飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C语言算法练习之抓交通肇事犯

    C语言算法练习之抓交通肇事犯

    这篇文章主要该大家分享C语言算法抓交通肇事犯的练习,文章主要通过描述抓交通肇事犯得问题然后确定程序框架将结果运算出来,下面来看详细内容吧,需要的朋友可以参考一下
    2022-03-03

最新评论