C++系列五:输入/输出

news2024/10/6 21:50:23

C++输入输出

    • 1. 输入
    • 2. 输出
    • 3. 格式化输出
    • 4. 总结

1. 输入

输入是指从外部源获得数据的过程, C++中可通过键盘或文件等外部源来获取输入数据。

(1)cin

cin是C++标准库中的一个输入流对象,用于从标准输入设备(通常是键盘)读取数据。cin是一个用于读取不同类型数据的操作符。

e.g. 从用户输入读取整数:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "Enter an integer: ";
    cin >> num;
    cout << "You entered: " << num << endl;
    return 0;
}

运行上述代码,输出:

Enter an integer: 10
You entered: 10

上述代码中可以看出,首先需要包含iostream头文件,然后使用using namespace std; 声明std命名空间。之后定义了一个整型变量num,并提示用户输入一个整数。最后,使用cin>>num语句将输入值存储在num变量中。需要注意,>> 是一个操作符,用于从输入流中提取数据。

(2)getline

getline是用于读取一行文本的函数,可从文件或标准输入读取一行字符,并将该行保存到一个字符串变量中。

e.g. 读取一行文本

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str;
    cout << "Enter your name: ";
    getline(cin, str);
    cout << "Hello, " << str << endl;
    return 0;
}

上述代码中,定义了一个字符串变量str,然后提示用户输入姓名。接下来,使用getline(cin, str)函数读取用户输入的整行数据,并将其存储在str变量中。最后,输出欢迎消息,其中包括用户输入的名称。

(3)文件输入

除了从键盘获取输入外,C++还允许从文件中读取输入。要进行文件输入,需要打开一个文件,然后使用cin重定向输入流。

e.g. 从文件中读取输入

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ifstream infile("input.txt");
    int num;
    while (infile >> num) {
        cout << num << endl;
    }
    infile.close();
    return 0;
}

上述代码中,首先使用ifstream打开名为“input.txt”的文件,然后使用while循环读取文件中的每个整数并将其输出到屏幕上。最后,使用infile.close()关闭输入文件。

2. 输出

输出是指将数据发送到外部源的过程,C++中可通过控制台输出或将数据写入文件来进行输出。以下是C++中最常见的输出函数:

(1)cout

cout是C++标准库中的一个输出流对象,用于将数据打印到标准输出设备(通常是屏幕)。

e.g.

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, world!" << endl;
    return 0;
}

上述代码中,使用cout输出“Hello, world!”字符串,并使用endl语句添加新行。

(2)文件输出

除了将数据输出到控制台外,C++还允许将数据写入文件。要进行文件输出,需打开一个文件并使用cout重定向输出流。

e.g. 将数据写入文件

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream outfile("output.txt");
    outfile << "Hello, world!" << endl;
    outfile.close();
    return 0;
}

上述代码中,首先使用ofstream打开名为“output.txt”的输出文件,然后使用outfile << “Hello, world!”语句将字符串写入文件。最后,使用outfile.close()关闭输出文件。

3. 格式化输出

某些情况下需要以特定格式输出数据,例如浮点数保留小数点后两位。C++提供了一些格式化输出函数,可用于控制输出数据的格式。

(1)setw

setw()函数用于设置输出字段宽度。

e.g. 在一个字段宽度为10的列中输出一个整数

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int num = 12345;
    cout << setw(10) << num << endl;
    return 0;
}

运行上述代码,输出:

12345

上述代码中,将num变量输出到屏幕时,使用了setw(10)函数来指定输出字段的宽度。

(2)setprecision

setprecision()函数用于设置浮点数的精度。

e.g. 将浮点数保留小数点后两位

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double num = 3.1415926535;
    cout << setprecision(2) << num << endl;
    return 0;
}

运行上述代码,输出:

3.14

上述代码中使用setprecision(2)函数来指定浮点数的输出精度。

(3)fixedscientific

fixedscientific是两个控制浮点数输出格式的函数。fixed函数用于以固定小数位输出浮点数,而scientific函数用于以科学计数法输出浮点数。

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double num = 1234567890.123456;
    cout << fixed << setprecision(2) << num << endl;
    cout << scientific << setprecision(2) << num << endl;
    return 0;
}

运行上述代码,输出

1234567890.12
1.23e+009

上述代码中,使用fixed函数以固定格式输出浮点数,而使用scientific函数则以科学计数法输出浮点数。

4. 总结

20年前学习C++语言的幼稚记录

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何评价滤波器的去噪效果?

假如使用两种滤波器&#xff0c;那么滤波效果如何去评价1&#xff1f; 为了能够得到高质量的去噪后信号&#xff0c;需要对滤波器的滤波效果进行评价&#xff0c;选取去噪效果最好的滤波器对原始信号进行去噪处理。 一般使用信噪比和峰值信噪比对滤波器进行量化评价&#xff0c…

Docker 基础实战:环境搭建、容器、仓库、镜像

文章目录 Docker 基础实战环境搭建容器启动容器新建并启动容器终止容器启动已终止容器创建守护态容器 容器日志查看日志日志驱动 进入容器docker attachdocker exec 容器信息docker psdocker inspectdocker topdocker stats 删除容器容器快照导出快照导入快照 仓库Docker Hub本…

软考--快速掌握七层模型与各种协议的划分

目录 协议族 网络层涉及的协议 传输层涉及的协议 应用层涉及的协议 协议族 认识几个协议族&#xff0c;所谓协议族就是说他不是单一的协议。而是很多协议拼在一起的。 TCP/IP协议族是internet的标准协议族&#xff0c;所以使用广&#xff0c;但是tcp/ip协议族传输效率是比较…

面试题:String,StringBuilder和StringBuffer的区别

面试题&#xff1a;String&#xff0c;StringBuilder和StringBuffer的区别 一、String 1、String是一个长度不可变的字符序列&#xff0c;底层是一个被final修饰的char[]数组。 2、任何对String类型进行改变的操作实际上都是重新生产一个新的String对象&#xff0c;然后将指…

micro-app在vue-element-admin中一些使用研究

1、简述 本文承接上一篇micro-app在vue-element-admi中的搭建&#xff0c;对micro-app在vue-element-admin中的一些平时开发中常用的功能做了一些研究。本文代码 2、路由 关于路由&#xff0c;这边从两方面进行研究&#xff0c;一方面是对菜单的配置&#xff0c;另一方面是页…

❤ 个人博客的搭建和设置

❤ 个人博客的搭建和设置 闲暇时候自己试着做了一个自己的个人博客&#xff0c;博客使用的Github进行托管&#xff0c;还在阿里云买了属于自己的域名 具体步骤如下 1、登陆自己的博客账号&#xff0c;新建个人主页的仓库 2、到了我们的名字设置&#xff0c;格外注意&#xf…

Leetcode刷题之两两交换链表中的结点和相交链表

只有把抱怨环境的心情&#xff0c;化为上进的力量&#xff0c;才是成功的保证。 ——罗曼罗兰目录 &#x1f349;一.相交链表 &#x1f490;1.双指针 &#x1f34d;2.计算长度加双指针 &#x1f352;二.两两交换链表中的结点 &#x1f34c;1.迭代 &#x1f349;一…

【Golang】多线程下载器的实现

〇、前言 多线程下载&#xff0c;顾名思义就是对一个文件进行切片访问&#xff0c;等待所有的文件下载完成后在本地进行拼接成一个整体文件的过程。 因此可以利用 golang 的多协程对每个分片同步下载&#xff0c;之后再合并且进行md5校验或者总长度校验。 一、请求资源 下载…

5.7学习周报

文章目录 前言文献阅读摘要简介数据方法论预测结果结论 时间序列预测总结 前言 本周阅读文献《Water quality forecasting based on data decomposition, fuzzy clustering and deep learning neural network》&#xff0c;文献主要结合数据分解、模糊C均值聚类和双向门控循环…

设计模式 - 工厂方法模式

设计模式 - 工厂方法模式 1、关于工厂方法模式2、工厂方法模式小试牛刀2.1、类图2.2、代码清单3、工厂方法模式的扩展3.1、简单工厂模式&#xff08;静态工厂模式&#xff09; 1、关于工厂方法模式 工厂方法模式&#xff0c;就是定义一个用于创建对象的接口&#xff0c;让子类决…

Ubuntu20升级nodejs版本

执行 grunt build的时候提示node版本过低 当前版本为10.19.0&#xff0c;不满足要求 安装 n&#xff0c;用于更新 node 版本的 sudo npm install n -g用n 下载 nodejs 的最新稳定版本 sudo n stable3. 安装完毕&#xff0c;node -r检查当前版本

【算法与数据结构】链表

链表 链表&#xff1a;结构定义 链表是由一串节点串联在一起的&#xff0c;链表的每个节点存储两个信息&#xff1a;数据下一个节点的地址 分清楚两个概念&#xff1a;什么是内存内部&#xff0c;什么是程序内部 内存内部&#xff1a; 信息存储在内存空间里的 程序内部&#…

复习笔记1

考纲(张友生版本软件架构 考试题型&#xff1a; 10*3单选 5*3简答题 5*3设计图&#xff08;含画图&#xff09; 10*2 论述题 10*2综合题 复习以课件为主&#xff0c;书为辅 第一章 (软件危机) &#xff1f; &#xff1f; 构造模型与实现 掌握软件结构体系核心模型 第二章 软件体…

阿里云Alibaba Cloud Linux镜像系统介绍及常见问题解答FAQ

阿里云服务器操作系统Alibaba Cloud Linux镜像怎么样&#xff1f;可以代替CentOS吗&#xff1f;Alibaba Cloud Linux兼容性如何&#xff1f;有人维护吗&#xff1f;漏洞可以修复吗&#xff1f;Alibaba Cloud Linux完全兼容CentOS&#xff0c;并由阿里云官方免费提供长期维护。 …

Java并发,夺命 60 问

基础 1.并行跟并发有什么区别&#xff1f; 从操作系统的角度来看&#xff0c;线程是CPU分配的最小单位。 并行就是同一时刻&#xff0c;两个线程都在执行。这就要求有两个CPU去分别执行两个线程。 并发就是同一时刻&#xff0c;只有一个执行&#xff0c;但是一个时间段内&am…

linux系统中rpm与Yum软件仓库

rpm的作用&#xff1a; 在没有rpm软件管理之前我们在安装、升级、卸载服务程序时要考虑到其他程序、库的依赖关系&#xff0c;所以在进行安装、校验、卸载、升级等操作时的难度就非常之大。 rpm机制则为就是为了解决这些问题而设计的&#xff0c;rpm有点像windows系统中的控制…

xawtv涉及的vivid系统调用分析

xawtv涉及的vivid系统调用分析 文章目录 xawtv涉及的vivid系统调用分析调用过程分析摄像头驱动程序必需的11个ioctl非必须必须 分析数据的获取过程1.请求分配缓冲区: ioctl(4, VIDIOC_REQBUFS // 请求系统分配缓冲区2.查询映射缓冲区:3.把缓冲区放入队列:4.启动摄像头5.用selec…

Docker-Flannel网络讲解

目录 什么是Flannel Flannel原理 部署 环境准备 安装etcd 安装fannel 在server2上装flannel 测试 什么是Flannel flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络&#xff08;Overlay Network&#xff09;工具&#xff0c;其目的在于帮助每一个使用 Kuberent…

文心一言 VS chatgpt (15)-- 算法导论3.2 4~5题

四、函数 ⌈ lg ⁡ n ⌉ ! \lceil \lg n \rceil ! ⌈lgn⌉! 多项式有界吗&#xff1f;函数 ⌈ lg ⁡ lg ⁡ n ⌉ ! \lceil \lg \lg n \rceil ! ⌈lglgn⌉! 多项式有界吗&#xff1f; 文心一言&#xff1a; chatgpt&#xff1a; 对于第一个问题&#xff0c;函数 ⌈ lg ⁡ n…

C++类和对象(6)

类和对象 1.在谈构造函数1.1. 构造函数体赋值1.2. 初始化列表1.3. explicit关键字 2. static成员2.1. 概念2.2. 特性 3.友元函数3.2.友元类 4. 内部类5.匿名对象6.拷贝对象时的一些编译器优化7.再次理解类和对象 1.在谈构造函数 1.1. 构造函数体赋值 在创建对象时&#xff0c…