C++语言io流处理基本操作教程示例
作者:xr415 发布时间:2023-11-02 22:07:39
一、输入输出流对象
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;
来源:https://blog.csdn.net/weixin_56366633/article/details/121366032


猜你喜欢
- 一、信号量(Semaphore)信号量(Semaphore)是由内核对象维护的int变量,当信号量为0时,在信号量上等待的线程会堵塞,信号量
- 什么是Spring BootSpring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初
- 在网上很多关于dubbo异常统一处理的博文,90%都是抄来抄去。大多都是先上一段dubbo中对于异常的统一处理的原码,然后说一堆的(甚至有1
- 场景:使用Fragment实现切页。类结构:一:ActivityActivity中使用getSupportFragmentManager()
- Unity Shader学习:裁切效果,供大家参考,具体内容如下之前看到有人问关于物体裁切方面的问题,初学shader的话可能搞得不是很明白
- # 前言之前在学习C语言的时候,做过一个三子棋的小游戏,最近开始学习Java,就想着能不能用Java再把之前的练习重新实现一边,既然有这个想
- 本文主要讲述运行时类型、对象、线程栈和托管堆之间的相互关系,静态方法、实例方法和虚方法的区别,以及内存的分配和回收。线程栈:在一个进程中可能
- 前言在前面的学习中,我们基本了解了一些 Canvas 的绘制,那么这一章我们一起复习一下图片的绘制几种方式,和事件的简单交互方式。我们从易到
- 今天查看登录日志,发现http_x_forwarded_for获取到的ip地址有些是内网ip地址,有些则是公网和内网ip地址一起获取到,用逗
- Android MotionEvent中getX()和getRawX()的区别实例详解实例代码:public class Res exten
- 使用环境项目环境:Idea 2020.2.3、 Maven 3.6.3 、springboot 2.1.4本人在创建springboot项目
- P代表(Profiles配置文件)在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。假如pom.
- 介绍记录将elasticsearch集成到spring boot的过程,以及一些简单的应用和helper类使用。接入方式使用spring-b
- 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地
- 百度一下搭建go-cqhttp,千篇一律都是采用python搭建的,Java搭建根本没有。导致自己在搭建的时候可折磨了,出现了许多的问题。唯
- 新添加个发文类型insert into mis.zyb_sf_type values('121','榆财法字'
- maven打包时候修改包名称带上git版本号和打包时间使用 maven 插件 git-commit-id-plugin 可以获取项目的git
- 一:自定义异常类:package 自定义异常; //或者继承RuntimeException(运行时异常) public class MyE
- cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持
- 本文实例为大家分享了java客户端登陆服务器用户名验证的具体实现代码,供大家参考,具体内容如下客户端通过键盘录入用户名,服务端对用户名进行验