《C++笔记 第一部分 C++语言篇》第2章 输入输出流

2024-08-30 13:08

本文主要是介绍《C++笔记 第一部分 C++语言篇》第2章 输入输出流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2.1概述

输入和输出并不是C++语言中的正式组成成分,C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。

C++的输出和输入是用“流”(stream)的方式实现的。

在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行输入输出语句时,先把数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到输入输出语句中的endl(或′\n′,ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。

在这里插入图片描述

图1

2.2 C++输出

 输出流即从程序中输出一系列的字符串,使用cout对象。

 引用头文件

#include <iostream>
using namespace std;

 基本形式如下:
cout<<表达式1<<表达式2<<……;
在这里插入图片描述
 换行
控制符endl
换行符:\

 一个cout语句可以分写成若干行

int main(int argc, char *argv [])
{cout << "hello world" <<endl;cout << "hello""world"<<endl;return 0;
}

cout输出时,系统会自动判别输出数据的类型

int main(int argc, char *argv [])
{int a = 123;double b = 456.789;char c  =  'a';cout << a << b << c <<endl;return 0;
}

2.3 C++输入

 输入流即向程序输入一系列的字符串,使用cin对象。

 引用头文件

#include <iostream>
using namespace std;

 基本形式如下:
cin >> 变量1 >> 变量2 >> …;
注意:输入时,以空行或回车作为一个变量输入结束。

 cin输入时,系统会自动识别输入数据的类型

int main(int argc, char *argv [])
{int ival;char ch;cin >>ival >>ch;cout << ival << ch <<endl;return 0;
}

 一个cin语句可以分写成若干行

int main(int argc, char *argv [])
{int ival;char ch;cin >>ival >>ch;cout << "1 :" << ival << ch <<endl;cin >> ival >>ch;cout << "2:" << ival << ch << endl;cin >> ival ;cin >> ch;cout << "3:" << ival << ch <<endl;return 0;
}

2.3格式控制符

 设置状态标志流成员函数setf
一般格式:long ios::setf(long flags)
调用格式:流对象.setf(ios::状态标志)

表1

在这里插入图片描述

 清除状态标志流成员函数unsetf

一般格式:long ios::unsetf(long flags)
调用格式:流对象.unsetf(ios::状态标志);

 设置域宽流成员函数width
一般格式:int ios::width(int n)
调用格式:流对象.width(n);
注:它只对下一个流输出有效,输出完成后,恢复默认值0

 设置实数的精度流成员函数precision
一般格式:int ios::precision(int n)
调用格式:流对象.precision(n);
注:参数n在十进制小数输出时表示有效数字。标志fixed和scientific表示输出小数位数

 填充字符流成员函数fill
一般格式:char ios::fill(char ch)
调用格式:流对象.fill(ch);
注:当输出值达不到域宽时用填充符来填充,默认填充符为空格,与width函数搭配使用。

 预定义操作符

表2
预定义操作符功能输入/输出
dec设置整数基数为10输入/输出
hex设置整数基数为16 输入/输出
oct设置整数基数为8输入/输出
setbase(n)设置整数的基数为n(可取0或10代表十进制,8代表八进制和16代表十六进制,默认为0)输入/输出
ws跳过输入的空格符输入
endl输出一个换行符并刷新输出流输出
ends插入null,通常用来结束一个字符串输出
flush刷新一个输出流输出
setfill©设置填充符(默认为空格)输出
setprecision(n)设置实数精度n输出
setw(n)设置域宽n输出
setiosflags(flags)设置指定状态标志,多个用"|"分隔输入/输出
resetiosflags(flags)清除指定状态标志,多个用"|"分隔输入/输出
表3

在这里插入图片描述

这篇关于《C++笔记 第一部分 C++语言篇》第2章 输入输出流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120909

相关文章

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.