[C++基本语法:从菜鸟变成大佬系列,就像1,2,3那么简单](五):C++的输入输出

怎样输入输出?

C ++标准库提供了一组广泛的输入/输出功能,我们将在后续章节中看到。本章将讨论C ++编程所需的非常基本和最常见的I / O操作。

C ++ I / O发生在流中,这是字节序列。如果字节从键盘,磁盘驱动器或网络连接等设备流向主存储器,则称为输入操作,如果字节从主存储器流向显示屏,打印机,磁盘驱动器等设备或者网络连接等,这称为输出操作。

I / O的头文件

以下头文件对C ++程序很重要

类型 描述
<iostream> 此文件定义分别对应于标准输入流、标准输出流、未缓冲标准错误流和缓冲标准错误流的 cincoutcerrclog
<iomanip> 此文件声明服务可用于使用所谓的参数化流操纵器(如 setwsetprecision)执行格式化的 I/O。
<fstream> 此文件声明用于用户控制的文件处理的服务。

标准输出流(cout)

预定义对象coutostream类的实例。cout对象被称为“连接”标准输出设备,通常是显示屏。的cout用于在结合流插入操作员,其被写为‘<<‘其比迹象少两个如示于下述的例子。

1 #include <iostream>
2 using namespace std;
3 int main() {
4    char str[] = "Hello C++";
5    cout << "Value of str is : " << str << endl;
6 }

编译并执行上述代码时,会产生以下结果

1 Value of str is : Hello C++

C ++编译器还确定要输出的变量的数据类型,并选择适当的流插入运算符来显示该值。<<运算符被重载以输出内置类型的数据项integer,float,double,strings和pointer值。

插入运算符<<可以在单个语句中多次使用,如上所示,endl用于在行的末尾添加换行符。

标准输入流(cin)

预定义对象 cinistream 类的实例。cin 对象表示连接到标准输入设备,通常为键盘。cin 与流提取运算符结合使用,该运算符被写入 ‘>>‘,这比以下示例所示的符号大于两个符号。

1 #include <iostream>
2 using namespace std;
3 int main() {
4    char name[50];
5    cout << "Please enter your name: ";
6    cin >> name;
7    cout << "Your name is: " << name << endl;
8 }

编译并执行上述代码时,将提示您输入名称。输入一个值,然后按Enter键以查看以下结果

1 Please enter your name: cplusplus
2 Your name is: cplusplus

C ++编译器还确定输入值的数据类型,并选择适当的流提取运算符以提取值并将其存储在给定变量中。

流提取运算符>>可以在单个语句中使用多次。要请求多个数据,您可以使用以下内容

1 cin >> name >> age;

这相当于以下两个陈述

1 cin >> name;
2 cin >> age;

标准错误流(cerr)

预定义对象cerrostream类的实例。cerr对象被称为附加到标准错误设备,它也是一个显示屏,但是对象cerr是非缓冲的,每个流插入到cerr会导致其输出立即出现。

所述CERR也与流插入操作一起使用如示于下述的例子。

1 #include <iostream>
2 using namespace std;
3 int main() {
4    char str[] = "Unable to read....";
5    cerr << "Error message : " << str << endl;
6 }

编译并执行上述代码时,会产生以下结果

1 Error message : Unable to read....

标准日志流(clog)

预定义对象clog是ostream类的实例。据说clog对象附加到标准错误设备,标准错误设备也是显示屏,但缓冲了对象clog。这意味着每次插入clog都可能导致其输出保持在缓冲区中,直到填充缓冲区或刷新缓冲区为止。

的堵塞也与流插入操作一起使用如示于下述的例子。

1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5    char str[] = "Unable to read....";
6    clog << "Error message : " << str << endl;
7 }

编译并执行上述代码时,会产生以下结果

1 Error message : Unable to read....

你可能无法看到cout,cerr和clog与这些小例子有任何区别,但在编写和执行大程序时,差异变得明显。因此,最好使用cerr流显示错误消息,并在显示其他日志消息时应使用clog。

For English visitors, please click here

原文地址:https://www.cnblogs.com/ssf-lrk/p/11231044.html

时间: 2024-10-11 01:28:43

[C++基本语法:从菜鸟变成大佬系列,就像1,2,3那么简单](五):C++的输入输出的相关文章

[C++基本语法:从菜鸟变成大佬系列](三):C++的定义变量

变量定义类型 类型 含义 bool 存储值为true或false char 通常为单个八位字节(一个字节).这是一个整数类型 int 机器最自然的整数大小 float 单精度浮点值 double 双精度浮点值 void 表示类型缺失 wchar_t 广泛的字符类型. C++中的变量定义变量定义告诉编译器为变量创建的存储位置和容量.变量定义指定数据类型,并包含该类型的一个或多个变量的列表,如下所示 1 type variable_list; 此处,类型必须是有效的 C++ 数据类型,包括字符.w_

[C++基本语法:从菜鸟变成大佬系列](二):C++的程序结构

C++程序结构 让我们看一下打印Hello World这个词的简单代码. 1 #include <iostream>//头文件名,iostream表示有输入输出流 2 using namespace std; 3 // main() 是主程序开始的地方 4 int main() { 5 cout<<"Hello World"; // 输出Hello World 6 return 0; 7 } 让我们看一下上述程序的各个部分 C ++语言定义了几个标题,其中包含对

菜鸟学设计模式系列笔记之Prototype模式(原型模式)

菜鸟学设计模式系列笔记之Prototype模式: Intent: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 Motivation:以一个已有的对象作为原型,通过它来创建新的对象. 在增加新的对象的时候,新对象的细节创建工作由自己来负责,从而使新对象的创建过程与框架隔离开来. 应用场景: (1)当一个系统应该独立于它的产品创建.构成和表示时 (2)当要实例化的类是在运行时刻指定时,例如动态加载 (3)为了避免创建一个产品类层次平行的工厂类层次时 (4)当一个类的实例只能有几个

菜鸟学SSH(十三)——Spring容器解析及简单实现

最近一段时间,"容器"两个字一直萦绕在我的耳边,甚至是吃饭.睡觉的时候都在我脑子里蹦来蹦去的.随着这些天一次次的交流.讨论,对于容器的理解也逐渐加深.理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧. 简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,只需要调用getBean("beanID")方法. 原理简单介绍: Spring容器的原理,其实就是通过解析xml文件,或取到用户配置的

Maven 系列 一 :Maven 快速入门及简单使用【转】

开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.zip.官网下载:http://maven.apache.org/download.cgi. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功: 其他配置:settings.xml(后面讲到)

Maven 系列 一 : Maven 快速入门及简单使用

开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.zip.官网下载:http://maven.apache.org/download.cgi. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功: 其他配置:settings.xml(后面讲到)

菜鸟学设计模式系列笔记之建造者模式(Builder模式)

提供一种"封装机制"来隔离出"复杂对象的各个部分"的变化. 从而保持系统中的"稳定构建算法"不随需求变化而变化.----建造者模式 建造模式是对象的创建模式 建造模式可以将一个产品的内部表象与产品的生成过程分割开来, 从而可以是一个建造过程生成具有不同的内部表象的产品对象. Intent : 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 Motivation: 在复杂对象的构造过程中,允许同样的构造过程能够加入新的被

菜鸟学设计模式系列笔记之抽象工厂模式

抽象工厂模式(Abstract Factory模式): (1)Intent:提供一个创建一系列相关后相互依赖对象的接口,而无需指定它们具体的类-客户端不必指定产品的具体类型,创建多个产品族中的产品对象 (2)Motivation :为保证视感风格标准间的可移植性,应用不应该为一个特定的视感外观硬编码它的窗口组件.在整个应用中实例化特定的视感风格的窗口组建类将使得使得以后很难改变视感的风格. 抽闲工厂模式面对的是多个产品等级结构的系统设计. 工厂方法模式针对的是一个产品等级结构: 抽象工厂模式需要

Linux新手到大佬系列——1

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Unix工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.Docker容器:布署更快,负载更小,迁移更方便,重启更快捷 一.指令与选项 指令:在命令行中输入的内容就称之为指令.若输入指令出现了 command not found //指令没有被找到一个完整的指