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;

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

空格也算

文件的一些指向操作


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

标签:C++,io,流处理
0
投稿

猜你喜欢

  • IDEA安装详细步骤(多图预警)

    2022-02-28 14:38:39
  • Android中TelephonyManager类的用法案例详解

    2022-04-30 20:18:32
  • jstorm源码解析之bolt异常处理方法

    2022-08-05 23:12:08
  • Spring计时器StopWatch使用示例

    2023-05-16 21:23:02
  • Spring ApplicationListener监听器用法详解

    2022-08-21 00:00:08
  • C# String Replace高效的实例方法

    2023-10-26 23:24:08
  • Compare And Swap底层原理及代码示例详解

    2022-10-10 16:06:18
  • Kryo框架使用方法代码示例

    2021-05-30 15:46:05
  • C#比较时间大小的方法总结

    2023-09-02 04:38:06
  • java寻找迷宫路径的简单实现示例

    2021-07-06 13:17:50
  • Java ArrayDeque使用方法详解

    2022-02-09 08:00:23
  • Socket通信原理和实践

    2022-07-05 02:42:31
  • Windows下Flutter+Idea环境搭建及配置

    2022-01-22 18:12:13
  • 文件路径正确,报java.io.FileNotFoundException异常的原因及解决办法

    2022-01-28 04:52:57
  • 高并发下如何避免重复数据产生技巧

    2022-04-17 07:08:57
  • Java多线程和并发基础面试题(问答形式)

    2022-03-29 17:39:42
  • Android自定义ViewPager指示器

    2023-11-29 03:30:31
  • JAVA判断空值方法原理解析

    2021-09-28 14:37:34
  • JAVA 根据设置的概率生成随机数的方法

    2023-07-15 00:13:37
  • java返回json请求中文变成问号的问题及解决

    2023-11-01 02:56:34
  • asp之家 软件编程 m.aspxhome.com