C++输入输出(新手教程)

别再只会用printf了!C++新手必学的cin/cout输入输出流保姆级教程(含VS2022配置) 本文详细介绍了C++中cin/cout输入输出流的使用方法,对比C语言的printf/scanf,展示其类型安全、内存安全和可扩展性等优势。包含VS2022配置指南、核心工作机制解析、高级应用技巧及常见问题解决方案,帮助C++新手快速掌握现代I/O编程。 阅读详情

目录

前言

C++的输入输出

C++风格

输入

输出

C风格

输入

输出


前言

在C++中,输入和输出是非常重要的。

在洛谷中,几乎每到题都需要用到输入输出。

这篇文章就是简单的给大家介绍了输入输出。

C++的输入输出

C++风格

C++风格的cin和cout需要使用iostream库

输入

输入一个数的示例代码:

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    return 0;
}

解释:此代码定义了一个整型变量a。并且输入了a。

可以发现,输入的格式就是

cin>>要输入的东西;

输入多个数的示例代码:

#include<iostream>
using namespace std;
int main(){
    int a;
    float b;
    double c;
    long long d;
    //1号代码片
    /*
    cin>>a;
    cin>>b;
    cin>>c;
    cin>>d;
    */
    //2号代码片
    cin>>a>>b>>c>>d;
    return 0;
}

解释:此代码定义了一个整型变量a,单精度浮点型变量b,双精度浮点型变量c,长整型变量d。并且依次输入了a,b,c,d。

此代码中一号代码片(被多行注释的部分)的功能和16行的代码功能是一样的。

可以发现,输入多个数和输入单个数的格式是类似的,相当于把多个cin合成了一块。

输出

输出一个数的示例代码:

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    cout<<a<<endl;
    cout<<a;
    return 0;
}
/*
输入:
5
*/
/*
输出:
5
5
*/

解释:此代码定义了一个整型变量a,输入了a,且输出了a并换行。

重点 :

第6行和第7行的区别在于第6行输出了endl,而第7行没有输出endl。

实际的输出第二行并没有换行,而第一行换行了,所以可以知道endl代表换行。

输出多个数与输出一个数的关系类似于输入多个数与输入一个数的关系。

输出多个数的示例代码:

#include<iostream>
using namespace std;
int main(){
    int a;
    long long b;
    float c;
    double d;
    cin>>a>>b>>c>>d;
    //cout<<a<<b<<c<<d;(如果执行这一行,所有的数将叠在一起)
    cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;//a,b,c,d之间用空格隔开,行尾换行。
    return 0;
}

C风格

C风格的scanf和printf需要使用stdio库

输入

输入一个整型的示例代码

#include<cstdio>
int main(){
    int a;
    scanf("%d",&a);
}

解释:此代码定义了一个整型变量a,输入了a。

scanf("格式控制字符串",输入项地址列表);//scanf格式

输出

输出一个整型的示例代码

#include<cstdio>
using namespace std;
int main(){
    int a;
    scanf("%d",&a)
    printf("%d\n",a);
    return 0;
}

解释:此代码定义了一个整型变量a,输入了a,且输出了a并换行。

printf("格式控制字符串",输出表项);//printf格式。注意printf输出表项不是地址(例子中是&a),而是值(例子中是a)

C风格的格式控制字符串

C风格进行输入输出会使用格式控制字符串。

 

%??第一个问号是整数,代表场宽,第二个问号是各种控制字符串。如%10d代表输出一个int,如果不足10位其余用空格补齐

格式字符串(scanf与printf)区别:

(1)scanf格式说明符中,可以指定数据的宽度,但不能指定数据的精度 

float f;
scanf("%10f",&f);
//读入一个占10场宽的浮点数存到f里
scanf("%10.2f",&f);
//错误,读入无法指定浮点数的精度(这样不会报错,但是输出f时会得到一个奇怪的数)

(2)scanf输入longlong数据时必须使用%lld,输入double数据必须使用%lf

(3)附加格式说明符“*”使对应的输入数据不赋给相应的变量(一般不使用,直接建个temp变量去读就行了)

C++之C++输入输出流 ios是抽象基类,由它派生出istream类和ostream类,iostream类支持输入输出操作,iostream类是从istream类和ostream类通过多重继承而派生的类。根据不同的情况,对文件的读写操作,可以采用不同的文件打开模式。又比如,我们使用打印机打印文档,由于打印机的打印速度相对较慢,我们先把文档输出到打印机相应的缓冲区,打印机再自行逐步打印,这时我们的。比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以。 阅读详情

相关推荐

C++基础教学(超详细)—— 数字变量及输入输出

这一篇感觉写的也不是很好啦,但是我觉得挺详细的, 如果还是有不明白的可以发在评论区,我会一 一解答并且修改文章的。喜欢的点点收藏和关注叭,就算是一个小小的赞,我也会很开心的·-·

sxj_c的博客 1205

C++最全输入方式总结(cin、get、getchar、getline)

1.cin>> 1)最常见的是获取输入的一个字符或数字,如 int a,b; cin>>a>>b; 注意:cin>>会自动过滤掉不可见字符(如空格 回车 tab等)。若不想过滤掉空白字符,可以用noskipws流进行控制。 ...

qq_41687938的博客 3万+

C++中输入一行不确定个数的整数

一般情况:1、先输入整数的个数n,再输入n个整数。2、一个结束标志0,输入0时停止输入。3、输入一行不确定个数的整数,并对其进行操作。按照标准的算法输入输出框架的话,也就是回车(enter)结束输入。int main(){int x = 0; cin >> x; while (cin.get() != '\n') { cin >> x; //对数据x的具体操作 }}...

星卯教育-信奥教练tony 4627

【C++篇】C++的输入和输出

知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错误,同时方便本人的基础复习,也希望能帮助到大家最好的好人,都是犯过错误的过来人;一个人往往因为有一点小小的缺点,将来会变得更好。如有错漏之处,敬请指正,有更好的方法,也希望不吝提出。最好的生活方式就是和努力的大家,一起奔跑在路上。

陈七的博客,学习知识分享,期待与大家的交流 3万+

C++编程新手到高手:CS42Cpp课程学习之路

本文还有配套的精品资源,点击获取 简介:"CS42Cpp"课程设计为初学者提供了一个系统的C++学习路径,涵盖了从基础知识到高级概念的全面内容。课程分为两个部分:前4周的基础阶段,后16周的深入阶段,逐渐引导学员掌握C++的语法、面向对象编程、高级特性如模板和STL使用。课程利用"CS42Cpp-master"资源包提供实践材料,帮助学员通过实际编码提高编程技能和解决问题的...

weixin_35982453的博客 1605

解决Windows 10安装语言包时遇到的0x800F0954错误

在安装Windows 10操作系统的语言包时,如果遇到错误代码0x800F0954的提示,这无疑会让许多用户感到困惑和无助。这个错误通常意味着在安装过程中遇到了一些阻碍,导致无法正常完成语言包的安装。本文将为大家详细解析这个错误代码0x800F0954,并提供一系列有效的解决方法,帮助大家顺利安装所需的语言包。

nntxthml的博客 3793

c++基础教程(5赞更)

以下是新手教程(老手可以退了) (1)主程序 主程序的话(直接背就行了,作者本人就是这样 (2)基本到不能基本的输入输出 输出的话要用一行代码: cout<<"要输出的文字"; 输出结果: 是不是觉得很简单? 把以上代码套入主程序(return 0之前)就行了。 有输出就有输入,输入代码: int a; cin>>a; 你们肯定会好奇,为啥不是一行代码? 这个的话。。。以后再说,总之要先掌握这几行代码,套入主程序就行了。 下期预告:变量 ...

YYDS_edward的博客 654

【BUAA】【计组】计算机组成 pre (含详细解析)

BUAA 计算机组成 本文章旨在为@走肖暂时无法接通的系列文章创造一个目录,收藏本文章,方便查阅! 1. 入门测试 2. 基础知识 3. Logisim   欢迎来到 Logisim 的世界   Logisim 门电路   Logisim 组合电路   Logisim 时序电路   Logisim 仿真与调试   应用与挑战 4. Verilog 与仿真工具   前言   ISE 入门   VCS 入门   Verilog 语法   Verilog 题目实例与分析   Verilog 工程的设计开发调试

Schrodinger007的博客 9809

新手向—c++入门教程1—OI

C++入门教程1 1.C++简介: C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 【推荐使用DEV-CPP来进行C++语言的学习】 2.写第一个程序 我们用c++语言...

1027

pyecharts可视化图表-tree:从入门到精通

本文系统介绍了树图(Tree Chart)的可视化技巧,包含基础实现、方向定制和环形布局等实例。树图能清晰展示层次结构数据,适用于组织架构、文件系统等场景。教程详细解析了pyecharts树图的核心配置项,包括数据准备、方向设置(下上、右左)和样式定制,并提供了完整代码示例。通过本指南,读者可快速掌握专业树图的构建方法,实现复杂层次数据的可视化呈现。

大数据内容个人总结与分享 1970

SDIO协议

SDIO协议1 概述  SDIO,全称:Secure Digital Input and Output ,即安全数字输入输出接口。2 特点①与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。②与较早的多媒体卡系统规格版本全兼容(向前兼容)。③与SD存储卡规格版本2.0全兼容。④与SD I/O卡规格版本2.0全兼容:支持两种不同的数据总线模式:1位(默认)和4

Let the development board fly! 3万+

c++易懂教程(2):人生中的第一套c++代码

c++易懂教程(2):人生中的第一套c++代码 上一周,我们安装好了DEV-C++。 这一周就要开始打出各位人生中的第一套代码了。 是不是迫不及待了,那我们就废话不多说了,马上开始今天的正文。 首先打开DEV-C++,按下Ctrl+n新建文档。 编译器请选择本机位数。 此线以上大佬不用看 ————————虚拟的分割线———————— 接下来开始头文件讲解。 在现在最常用的语法有以下两种。 #i...

ivan_lai2020的博客 235

Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可。在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接。

分享学习成长历程,Winter is coming! 1万+

牛客C++ACM模式输入输出11道题分析与总结

-

zorchp 2365

从零开始讲DDR(5)——读懂Datasheet

对于开发人员来说,需要根据实际场景和使用的需要,使用不同厂家,不同型号的DDR,虽然原理上大同小异,但是还是有一些细节上的需要注意的地方,接触一个新的DDR芯片,首先就是需要找到对应的datasheet,而能都读懂datasheet,也是一个硬件工程师的必备技能。

apple_53311083的博客 5220

(6)APB总线协议 —— 逻辑梳理(0.1认知)

这篇大家就差不多看看就行

CAUC_learner的博客 2702

C++青少年简明教程:C++的输入输出

C++青少年简明教程:C++的输入输出

cnds123的专栏 1820

小论文/大论文必备 | RT-DETR目标检测、数据集增强 | 引入多种数据集增强方法,支持图像和标签同步扩充增强,助力小论文和大论文实验涨点策略,平均提升模型mAP约1-2个百分点

RT-DETR目标检测数据增强策略研究 ,本文针对RT-DETR目标检测模型提出9种数据增强方法,包括几何变换(水平/垂直翻转、中心裁剪)、光照调整(亮度、对比度)和噪声添加(高斯/椒盐噪声)等。所有增强操作均保持图像与标签同步变换,确保训练数据的准确性。实验表明,该策略可提升模型mAP 1-2个百分点,对小目标检测效果尤为显著。文中提供了完整的Python实现代码,支持批量处理图像和标签文件,并详细说明了各增强方法的功能特点。该方法通过提升数据多样性,有效增强了模型在复杂场景下的鲁棒性和泛化能力。

Ai缝合怪、助力小伙伴高效发论文 460

C++新手入门学习教程

C++学习教程一,基础教程安装Visual Studio开发环境创建一个C++项目和C++文件欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一,基础教程 安装Visual Studio开发环

weixin_44553473的博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C++基础之C++中的输入输出

目录 文章目录 前言 一、输入输出流 二、c++中输入输出语句 1.标准输入设备 2.标准输出设备 3.原理 三、iostream类库

weixin_48716357的博客 5万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

纯新手教程:用llama.cpp本地部署DeepSeek蒸馏模型

llama.cpp是一个基于纯C/C++实现的高性能大语言模型推理引擎,专为优化本地及云端部署而设计。其核心目标在于通过底层硬件加速和量化技术,实现在多样化硬件平台上的高效推理,同时保持低资源占用与易用性。最近DeepSeek太火了,就想用llama.cpp在本地部署一下试试效果,当然在个人电脑上部署满血版那是不可能的,选个小点的蒸馏模型玩一玩就好了。

DeepDriving 2262

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++之输入输出

C++是一种广泛使用的编程语言,具有强大的输入输出功能。在C++中,输入输出主要通过标准输入输出流进行操作。通过使用iostream库中的cin和cout对象,可以实现从键盘读取用户输入和向屏幕输出结果。 输入输出在C++中是非常重要的,因为它们可以帮助我们与用户交互并显示程序的执行结果。正确地处理输入输出可以使程序更加灵活和友好。在C++中,可以使用流操作符"<<"和">>"来实现输入输出操作,这使得代码变得简洁而直观。

踏入代码与智能交织的奇妙世界,我是小辉同志。在这片技术天地里,C++ 是我探索底层逻辑、雕琢高效算法的利刃,每一段精心编写的代码都是通往优化之路的基石。而人工智能,则宛如闪耀星辰,引领我不断钻研机器学习、深度学习等前沿领域,探寻智能的奥秘。 1510

零基础上手keras2cpp:C++新手也能看懂的神经网络移植教程

**keras2cpp**是一个将Keras神经网络模型移植到纯C++环境的实用工具,特别适合希望在C++项目中部署深度学习模型的开发者。本文将通过简单易懂的步骤,带您快速掌握如何将Keras模型转换为C++代码并运行,即使您是C++新手也能轻松上手! ## 📌 为什么选择keras2cpp? 在深度学习项目中,我们通常使用Python和Keras快速构建和训练模型,但部署时可能需要更高性

gitblog_01200的博客 957

初识cpp【C++】

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{ }即可,{ }中即为命名空间的成员。命名空间解决了C语言中的命名冲突问题例如:出现命名冲突的原因:当然,在引入在第三方库时,C语言也容易出现重定义现象;解决方法:将命名冲突的变量放到命名空间域中上图中 namespace lisi 中的 lisi 是 命名空间的名字命名空间中可以定义变量/函数/类型命名空间可以嵌套同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。

加油!!! 1973

Matlab2Cpp 开源项目教程

Matlab2Cpp 开源项目教程 项目介绍 Matlab2Cpp 是一个开源项目,旨在将 MATLAB 代码转换为 C++ 代码。这个工具可以帮助研究人员和开发者将他们的 MATLAB 算法和模型移植到 C++ 环境中,以便在性能要求更高的场景中使用。Matlab2Cpp 通过解析 MATLAB 代码并生成相应的 C++ 代码,简化了这一转换过程。 项目快速启动 安装 首先,克隆项目仓库到本地:...

gitblog_00576的博客 1093

C++ 的输入输出

C++ 的输入输出是程序与用户交互的核心,>>和<<的使用是理解输入输出流的关键。<<:数据从右流向左(流入输出流)。>>:数据从左流向右(提取到变量)。输入输出流看似简单,但它是 C++ 程序的基础,掌握它将为你后续学习更复杂的 C++ 知识奠定坚实的基础。

2403_86977424的博客 1465
上一篇: 二叉树(AI撰写)
下一篇: AI绘图(AI撰写)
Robots75
博客等级 码龄3年 1粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值