我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++学习之IO流(输入输出流)详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++学习之IO流(输入输出流)详解

介绍

流: 若干字节数据从一端到另一端我们叫做流

例如:操作文件,从程序到文件,数据的流动的操作称为流操作

流类体系

专门处理输入输出流、字符流、文件流,包含有:

  • 流对象
  • 流运算符 >>  <<

输入/出流对象 + 流运算符 >>  <<---处理输入输出的数据

字符流对象 + 流运算符 >>   <<   ---处理字符流

文件的对象 + 流运算符 >>  <<    ---读写文件

基本输入、输出流

istream 类---cin       输入

ostream类---cout     输出

tip:输出流除了cout外,还有一些别的对象(效果和cout一样)

  • cerr ---标准出错
  • clog ---日志文件输出

#include <iostream>
using namespace std;
void testostream()     //output 
{
	//freopen()
	cout << "标准输出" << endl;		//cin/cout都可以重定向
	cerr << "标准错误输出" << endl;	//不能重定向 当觉得程序可能出错时用cerr输出,标识作用
	clog << "日志文件输出" << endl;  //可以重定向为文件
}
int main(){
 
    testostream();
}

 

freopen

把程序的输入、输出重定向为文件

重定向是文件中的数据的格式要与程序读取的格式一致

输入重定向


#include<cstdio>
#include<iostream>
int main(){
 
    freopen("1.txt","r",stdin);//参数:文件名 读写方式 流
    int a,b;
    scanf("%d%d",&a,&b);       //把基本输入定向为文件,程序所有的输入由文件完成
    std::cout<<a+b;
 
}

 

输出重定向


#include<cstdio>
#include<iostream>
int main(){
 
    freopen("1.txt","r",stdin);//参数:文件名 读写方式 流
    int a,b;
    scanf("%d%d",&a,&b);       //把基本输入定向为文件,程序所有的输入由文件完成
    std::cout<<a+b;
    freopen("2.text","w",stdout);
    printf("%d",a+b);
 
}

 

字符类的处理

  • 正常的操作
  • 通过IO流对象调用成员函数的方式

单个字符和字符串的输出处理


//调用成员函数的方式传常量、变量都可以
void testostream()    
{
//单个字符的输出
    cout.put('a');          //传常量    通过IO流对象调用成员函数的方式
	cout << 'a' << endl;    //正常的输出方式
 
	char c = 'C';
	cout.put(c);    //传变量
	cout << c << endl;
//多个字符/字符串的输出
	cout.write("ILoveyou",4); 
}
int main(){
 
    testostream();
}

 

单个字符和字符串的输入处理


void testostream()
{
//单个字符的输入
	
	cout.put(cin.get());    //要处理回车
	cout << endl;
 
//多个字符/字符串的输入
	cout << "字符串的处理"<<endl;
	while (cin.get() != '\n');
	//while(getchar()!='\n');
	char str[20] = "";   //准备一个字符串   注意不是返回值不能一步到位
	cin.getline(str, 20);//输入函数
	cout.write(str, 20); //输出函数 相对于流操作更安全,可以指定长度,同样需要清空缓冲区处理
}
int main() {
 
	testostream();
}

 

注意不能用来处理string


 string text;
 cin.getline(text,20);    //报错,不能处理string,只能处理char*

格式控制字符

包含头文件 <iomanip>

常用的格式控制,一种是调用成员函数方式,一种流控制字符去做

  • 设置有效位数: setprecision(n)
  • 设置精度: fixed 结合 setprecision 使用

tip:流控制字符---c++用来控制格式的操作

设置格式


int main(){
 
	double pi = 34.12343;
	cout << "设置有效位数是:" << setprecision(4) << pi << endl;     //从整数位开始算
	cout << "有效小数位:" << fixed << setprecision(4) << pi << endl;//从小数位开始算
 
//所有的流控制符都会对应一个成员函数的方式
	cout.precision(4); 
	cout << "有效小数位:" << pi;
 
	double pi = 34.12369;
	cout << "设置有效位数是:" << setprecision(4) << pi << endl;
	cout << "有效小数位:" << fixed << setprecision(4) << pi << endl;
	cout.precision(4); //所有的流控制符都会对应一个成员函数的方式
	cout << "有效小数位:" << pi;
}

 
    

进制输出


int main(){
	cout << hex << 32 << endl;  //16进制
	cout << oct << 15 << endl;  //8进制输出
//流控制字符的方式
	cout << setbase(2) << 7 << endl; //2进制无效,不能是任意进制,任意进制的默认10进制输出
	
}

 

对齐方式和数据的宽度问题        制表符 '\t'

限制每个数据的位数不足补空格 

1. 8位制表,不足8位  补空格       

2. 超过8位,按照16位制表 


//默认右对齐
int main(){
	
   cout << setw(8) << "123" << setw(8) << "12344" << setw(8) << "3444" << endl;
   cout << setiosflags(ios::left);//ios::right右对齐 ios::left左对齐 数据不够用空格占位
   cout << setw(8) << "123" << setw(8) << "12344" << setw(8) << "3444" << endl;
   
     123   12344    3444 //默认是右对齐方式
123     12344   3444
 
123     123666

到此这篇关于C++学习之IO流(输入输出流)详解的文章就介绍到这了,更多相关C++ IO流内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++学习之IO流(输入输出流)详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++基础学习之输入输出流详解

C++是一种广泛应用的编程语言,其输入和输出是程序所必须的基本操作之一。本文将介绍C++中的输入和输出操作,包括输入输出流、文件输入输出等,希望对读者有所帮助
2023-05-17

如何解析C++中IO流的输入输出流

本篇文章为大家展示了如何解析C++中IO流的输入输出流,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。介绍流: 若干字节数据从一端到另一端我们叫做流例如:操作文件,从程序到文件,数据的流动的操作称为流
2023-06-22

JAVA语言的输入输出流详解(c)

详解b中的例子,详解[@more@]  1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:BufferedReader(Reader in) Buffere
2023-06-03

JAVA输入输出流详解(F)

前两天看了《java核心编程》中对于java中的IO输入输出讲解,收获良多,下面的程序是我读完书以后自己写的一个将zip文件集中的文件内容读取出来然后显示(只限于文本,其他文件将会产生乱码),此程序也可通过改进可以得到一个和winzi
2023-06-03

JAVA输入输出流详解(H)

*/public String loadFileCon(String fileName,File file,String type){String fileContent = "",conTemp = "";byte[] fileConfB
2023-06-03

JAVA输入输出流详解(G)

import java.util.*;import java.util.zip.*;import java.io.*;class ZipFileHandle{private String[] FileNameArray;
2023-06-03

一文搞定Java IO流,输入流、输出流、字符流、缓冲流,附详细代码示例

目录 一、InputStream1、FileInputStream的代码示例2、ByteArrayInputStream的代码示例3、PipedInputStream的代码示例 二、 OutputStream1、FileOu
2023-08-16

Java IO中字节输入输出流的示例分析

这篇文章主要介绍Java IO中字节输入输出流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实
2023-06-26

C++输入和输出流的示例分析

这篇文章给大家分享的是有关C++输入和输出流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。输入和输出流从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。从磁盘文件输入数据
2023-06-29

C++标准输入输出流指的是什么

C++标准输入输出流(Standard Input/Output Stream)是C++标准库提供的一组用于输入和输出的类和对象。它们用于处理与用户交互、读写文件以及与外部设备进行通信等操作。C++标准输入输出流包括以下几个类:1. ist
2023-09-20

图文详解Java中的字节输入与输出流

目录字节输入流字节输入流结构图FileInputStream类构造方法:常用读取方法:字节输出流字节输出流结构图:FileOutputStream类构造方法:常用写入方法:总结字节输入流java.io.InputStream抽象类是所有字节输入流的超类,将数据
2017-02-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录