C++ 语法基础(五)(一)

简介: C++ 语法基础(五)(一)

输入输出概述

输入输出: 程序与外部设备交换信息。


可分为基于控制台的I/O,基于文件的I/O,基于字符串的I/O。


数据流: C++ 把输入输出看作一个数据流。


输入流:外围设备流向内存的数据

输出流:内存流向外围设备的数据

C++ 中相关的头文件如下表所示。

image.png

image.png


image.png


输入输出缓冲

I/O对象: C++ 程序不能直接与输入输出设备交换信息,而需要通过一个对象实现。对象是输入输出设备在程序中的代理。


每个 I/O 对象管理一个缓冲区,用于储存读写得数据。


格式: >> 从输入缓冲区取数据存入变量;<< 将数据放入输出缓冲区。


缓冲区刷新:


程序正常结束:清空所有输出缓冲区,真正输出内容。

缓冲区满:在写入下一个值之前,会刷新缓冲区。

强制刷新:endl 显式地刷新缓冲区, unitbuf 操作符设置流的内部状态清空缓冲区。

关联输入输出流:在读输入流时,将刷新其关联的输出缓冲区。

image.png

image.png


整数和实数的输入输出

设置整数基数


hex 十六进制 oct 八进制 dec 十进制

setbase(进制数),只允许 8、10、16 进制。

头文件 iomanip

流的基数值只有被显式更改才会发生变化,否则会一直沿用原有基数。

设置浮点数精度


精度: 指实型数的有效位数。

设置方法:

流操作符:setprecision(位数)

流的成员函数:precision(位数)

一旦设置了精度,将影响所有输出的浮点数的精度,直到下一个设置精度的操作为止。


image.png

image.png

image.png



设置域宽

精度: 指实型数的有效位数。

设置方法:

流操作符:setprecision(位数)

流的成员函数:precision(位数)

一旦设置了精度,将影响所有输出的浮点数的精度,直到下一个设置精度的操作为止。

image.png



相关文章
|
12天前
|
编译器 C++ 容器
C++语言的基本语法
想掌握一门编程语言,第一步就是需要熟悉基本的环境,然后就是最重要的语法知识。 C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。 类 - 类可以定义为描述对象行为/状态的模板/蓝图。 方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。 即时变量 - 每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。 完整关键字
29 2
|
1月前
|
Java 编译器 程序员
C++中的语法知识虚继承和虚基类
**C++中的多继承可能导致命名冲突和数据冗余,尤其在菱形继承中。为解决这一问题,C++引入了虚继承(virtual inheritance),确保派生类只保留虚基类的一份实例,消除二义性。虚继承通过`virtual`关键字指定,允许明确访问特定路径上的成员,如`B::m_a`或`C::m_a`。这样,即使基类在继承链中多次出现,也只有一份成员副本,简化了内存布局并避免冲突。虚继承应在需要时提前在继承声明中指定,影响到从虚基类派生的所有后代类。**
44 7
|
1月前
|
编译器 C++ 开发者
C++一分钟之-属性(attributes)与属性语法
【7月更文挑战第3天】C++的属性(attributes)自C++11起允许附加编译器指令,如`[[nodiscard]]`和`[[maybe_unused]]`,影响优化和警告。注意属性放置、兼容性和适度使用,以确保代码清晰和可移植。示例展示了如何使用属性来提示编译器处理返回值和未使用变量,以及利用编译器扩展进行自动清理。属性是提升代码质量的工具,但应谨慎使用。
49 13
|
2月前
|
编译器 程序员 C++
C++一分钟之-属性(attributed)与属性语法
【6月更文挑战第28天】C++的属性为代码添加元数据,帮助编译器理解意图。C++11引入属性语法`[[attribute]]`,但支持取决于编译器。常见属性如`nodiscard`提示检查返回值,`maybe_unused`防止未使用警告。问题包括兼容性、过度依赖和误用。使用属性时需谨慎,确保团队共识,适时更新以适应C++新特性。通过示例展示了`nodiscard`和`likely/unlikely`的用法,强调正确使用属性能提升代码质量和性能。
52 13
|
2月前
|
编译器 C语言 C++
|
2月前
|
存储 自然语言处理 编译器
【C++语言1】基本语法
【C++语言1】基本语法
|
3月前
|
编译器 C语言 C++
C++的基本特性和语法
C++的基本特性和语法
46 1
|
3月前
|
存储 C++ 容器
【C++从练气到飞升】09---string语法指南(二)
【C++从练气到飞升】09---string语法指南(二)
|
3月前
|
存储 Linux C语言
【C++从练气到飞升】09---string语法指南(一)
【C++从练气到飞升】09---string语法指南(一)