关于C/C++的输入和输出
目录
一、C语言中的scanf
有关scanf()的例子
二、C语言中的printf
有关printf()的例子
三、C++中的cin、cout
四、字符的输入
1、cin.get()
2、cin.get()
3、cin.getline()
4、getline()
5、getchar()
五、string类型字符串长度
1、length()
2、size()
一、C语言中的scanf
scanf 格式:%[width][modifiers]type
其中width为指定当前读取操作中读取的最大字符数
type为字符类型,常见的有如下所示:
| 转换字符 | 参数类型 | 含义 |
| d | int* | 十进制有符号整数 |
| f | float* | 浮点型字面值常量 |
| c | char* | 读取单个字符。如果给出宽度,就读取给定数目的字符 |
注:scanf()在处理数值位占符时,会自动过滤空白字符,包括空格、制表符、换行符等。
有关scanf()的例子
int a=0;
float b=0;
scanf("%d%f",&a,&b);
int n=0;
scanf("%3d",&n)
//如果在终端输入1234,scanf只能读取3个字符,所以最终输出结果为123
二、C语言中的printf
printf 格式:%[flags][width][.precision][modifiers]type
其中.precision为精度,通过点号分隔字段的宽度和精度
- 对于字符串,它指定打印的字符的最大个数
- 对于整数,它指定打印的数字的最小位数
- 对于转换字符为e、E或f,它指定小数点后打印的数字位数
type的常见类型如下:
| 转换字符 | 参数类型 | 含义 |
| d、i | int | 参数作为有符号十进制整数打印 |
| f | double | 参数按照常规的浮点数形式打印。小数点后面的位数是由精度字段决定,默认是6 |
| c | char | 参数被裁剪为unsigned char类型并作为字符打印 |
| s | char* | 打印一个字符串 |
有关printf()的例子
//小数的默认精度是小数点的后六位
printf("%9f\n",1.234); //输出结果为1.234000
printf("%9f\n",100.234); //输出结果为100.234000printf("%.3f",1.2); //输出结果为1.200
printf("%.4f",1.2); //输出结果为1.2000
int a=0;
scanf("%d",&a);
printf("输出:%d\n",a);
三、C++中的cin、cout
在C++语言中依然可以使用scanf()和printf()来输入和输出,但需要加上头文件#include<stdio.h>
而使用cin和cout,需要加上头文件#include<iostream>
int a,b;
cin>>a>>b;
cout<<a+b<<endl;输入:2【空格】3【回车】
输出:5
cin接受一个字符串,遇到“空格”、“Tab”、“回车”都会结束char a[20];
cin>>a;
cout<<a<<endl;输入:abcd
输出:abcd输入:a b c d
输出:a
四、字符的输入
1、cin.get()
cin.get(字符变量名) 可以用来接收字符
char ch;
ch=cin.get(); //或者cin.get(ch);只能获取一个字符
cout<<ch<<endl;输入:aaaa
输出:a
2、cin.get()
cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格
char a[20];
cin.get(a,20); //中间可以用空格隔开
cout<<a<<endl;输入:ee ee ee
输出:ee ee ee 输入:asdfasdfasdfasdfasdfasdf //输入了24个字符
输出:asdfasdfasdfasdfasd //最后只能接受19个字符+1个'\0'(字符串结束字符标志)
3、cin.getline()
cin.getline(字符数组名,接收字符数,结束字符) 接收一个字符串,可以接收空格,其中第三个参数“结束字符”可省略不写,默认为'\n'。
char m[20];
cin.getline(m,5);
cout<<m<<endl;输入;qweeeee
输出:qwee //只接受四个字符+1个'\0'输入:q qqeeq
输出:q qq //其中空格算一个字符
当用在多维数组(如二维数组)中的时候,也可以用cin.getline(m[i],20) 来输入。
4、getline()
getline() 接受一个字符串,可以接收空格,但前提需加上头文件“#include <string>”
与cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流
string str;
getline(cin,str);
cout<<str<<endl;
5、getchar()
getchar() 接收一个字符,需包含“#include <string>”
char ch;
ch=getchar(); //不能写成getchar(ch);
cout<<ch<<endl;输入:aa
输出:a
五、string类型字符串长度
1、length()
length() 函数是string的内置成员,用于返回string类型字符串的实际长度
string s="hello world!"
cout<<s.length()<<endl;输出:12
2、size()
string s="hello world!"
cout<<s.size()<<endl;输出:12
参考博客:
【C++中输入字符串的几种方法 - CSDN App】https://blog.csdn.net/u011486738/article/details/82082405?sharetype=blog&shareId=82082405&sharerefer=APP&sharesource=2302_76596737&sharefrom=link
【C++中求string类型字符串长度的三种方法 - CSDN App】https://blog.csdn.net/qq_43762434/article/details/132509049?sharetype=blog&shareId=132509049&sharerefer=APP&sharesource=2302_76596737&sharefrom=link
相关文章:
关于C/C++的输入和输出
目录 一、C语言中的scanf 有关scanf()的例子 二、C语言中的printf 有关printf()的例子 三、C中的cin、cout 四、字符的输入 1、cin.get() 2、cin.get() 3、cin.getline() 4、getline() 5、getchar() 五、string类型字符串长度 1、length() 2、size() 一、C语言中…...
1-kafka单机环境搭建
本文介绍kafka单机环境的搭建及可视化环境配置,虽然没有java代码,但是麻雀虽小五脏俱全,让大家在整体感官上对kafka有个认识。在文章的最后,我介绍了几个重要的配置参数,供大家参考。 0、环境 kafka:2.8.…...
Qt常用控件之旋钮QDial
旋钮QDial QDial 表示一个旋钮控件。 1. QDial属性 属性说明value当前数值。minimum最小值。maximum最大值。singleStep按下方向键时改变的步长。pageStep按下 pageUp/pageDown 的时候改变的步长。sliderPosition界面上旋钮显示的初始位置。tracking外观是否会跟踪数值变化&…...
基于DeepSeek,构建个人本地RAG知识库
经过一段使用DeepSeek后,感觉使用体验和ChatGPT基本差不多,回答问题的质量略有提升,因DeepSeek已开源,它的模型、模型参数权重从网上都可以下载到,所以可以基于开源的模型,在本地构建一个自己的知识库&…...
散户如何实现自动化交易下单——篇1:体系介绍与获取同花顺资金账户和持仓信息
一、为什么要实现自动化交易 在瞬息万变的金融市场中,越来越多的散户投资者开始尝试构建自己的交易策略:有人通过技术指标捕捉趋势突破,有人利用基本面分析挖掘低估标的,还有人设计出复杂的网格交易或均值回归模型。然而&a…...
轻松实现语音生成:GPT-SoVITS V2整合包的远程访问操作详解
文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS!这款由花儿不哭大佬精心打造的语音克隆神…...
【微知】git 如何修改某个tag名字?如何根据某个commit创建一个tag?
背景 某些时候git tag名字搞错了,需要修改,如何处理? 删除某个tag git tag -d oldtagname修改某个tag名字 创建新的,删除老的 git tag newtagname git tag -d oldtagname基于某个老的commit创建一个tag git tag V0.1.0 xxxc…...
Java中使用for和Iterator遍历List集合的区别
在 Java 中,遍历 List 可以使用 for 循环 和 Iterator 两种方式。它们各有优缺点,适用于不同的场景。以下是它们的区别和适用场景: 1. 语法和使用方式 for 循环: 使用索引遍历列表。 示例: List<String> li…...
删除有序链表中重复的元素-II(C++)
目录 问题描述 示例1 示例2 解题思路 代码实现 代码解析 1. 初始化 2. 遍历链表 总结 问题描述 给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。 例如: 给出的链表为1→2→3→3→4→4→51…...
SFP(Small Form-factor Pllugable)详解
1. SFP的定义 SFP(Small Form-factor Pluggable)是一种小型化热插拔光模块/电模块,广泛用于网络设备(如交换机、路由器、网卡等)中,作为物理层接口模块。其设计遵循由多源协议(MSA)…...
【0011】HTML其他文本格式化标签详解(em标签、strong标签、b标签、i标签、sup标签、sub标签......)
如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢! 本文内容体系结构如下: 本文旨在深入探讨HTML中其他的文本格式化标签,主要有<em> 标签、<strong> 标签、…...
在分布式系统中,解决因锁持有者故障导致锁无法释放的问题
分布式锁的自动释放与容错机制 在分布式系统中,如果锁的持有者因故障无法主动释放锁,可能会导致死锁或业务阻塞。为了提高系统的稳定性和可用性,需要结合自动释放机制和容错设计。以下是几种关键解决方案: 1. 设置锁的自动过期时…...
结构型模式--组合模式
概念 组合人模式是结构型设计模式的一种,主要是用于解决代码中出现类像树一样进行组合而出现的组合结构的相关操作问题。使其树中的任意一个节点(无论是子节点还是父节点)都可以使用同一套接口进行操作。 使用场景 1、如果希望我们对象组合…...
时间复杂度练习题(6道题,C语言)
// 第一道int x 90;int y 100;while (y>0)if(x>100){x x -10;y--;}else x; // 第二道for (int i 0;i<n;i){for (int j 0;j<m;j){a[i][j] 0;}}// 第三道s 0;for(int i 1;i<n;i){for(int j 1;j<n;j){s B[i][j];}}sum s; // 第四道i 1;while (i<…...
第十四届蓝桥杯大赛软件赛国赛C/C++大学C组
A 【跑步计划——日期问题】-CSDN博客 B 【残缺的数字】-CSDN博客 C 题目 代码 #include <bits/stdc.h> using namespace std;void change(int &x) {int sum 0, t x;while(t){sum t % 10;t / 10;}x - sum; } int main() {int n;cin >> n;int ans 0;…...
【WPF】绑定报错:双向绑定需要 Path 或 XPath
背景 最开始使用的是 TextBlock: <ItemsControl ItemsSource"{Binding CameraList}"><ItemsControl.ItemsPanel><ItemsPanelTemplate><StackPanel Orientation"Horizontal"/></ItemsPanelTemplate></ItemsControl.Item…...
谈谈 ES 6.8 到 7.10 的功能变迁(6)- 其他
这是 ES 7.10 相较于 ES 6.8 新增内容的最后一篇,主要涉及算分方法和同义词加载的部分。 自定义算分:script_score 2.0 Elasticsearch 7.0 引入了新一代的函数分数功能,称为 script_score 查询。这一新功能提供了一种更简单、更灵活的方式来…...
huggingface下载模型到本地缓存环境变量配置详解
1.安装huggingface-cli 命令行工具,进行模型文件下载 pip install -U huggingface_hub huggingface-cli --help 帮助命令 2.从huggingface下载模型方法 方法1: git clone 下载模型 方法2:huggingface-cli 工具下载模型 方法3&…...
u-boot的环境变量设置、保存、汇总与说明【同时对u-boot的环境变量`bootcmd`和网络启动(run netboot)方式进行了详细解释】
前言 在 U-Boot 中,环境变量用于配置系统的启动参数和行为。是否能正确理解和设置u-boot中的环境变量是启动Linux系统的关键,所以有必要认真学习了解下各环境变量的意思和作用。 最好的学习材料就是实际的例子,所以本篇博文把我遇到过的各个…...
【后端】Docker一本通
长期更新补充,建议关注收藏点赞 目录 Docker概述安装部署Docker基本操作使用docker部署tomcat使用docker部署mysql Docker概述 docker是⼀个应⽤级隔离的虚拟化技术docker三大核心概念 镜像:是具有源的所有特征的⼀个标记⽂件 仓库:存放镜像…...
基于Spring Boot和Vue的餐饮管理系统设计与实现
大家好,今天要和大家聊的是一款基于Spring Boot和Vue的餐饮管理系统的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于Spring Boot和Vue的餐饮管理系统设计与实现的主要使用者分为管理员、员工和用户。没有授权的用户无…...
如何快速的解除oracle dataguard
有些时候,我们为了使oracle dg的standby库另做他用,需要解除oracle dataguard数据同步。我本地因为standby库存储出现故障,导致dg存在问题,故需要解除。今天,我们通过使用部分命令,实现dg的快速解除。 1&a…...
C语言【指针篇】(四)
前言:正文1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 两段有趣的代码4.3.1 typedef关键字 5. 函数指针数组6. 转移表 总结 前言&am…...
Python基于Django的网络课程在线学习平台【附源码】
博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...
vscode集成DeepSeek
vscode 扩展 安装 Cline Meet Cline,一个可以使用你的CLI和编辑器的AI助手。 得益于 Claude 3.5 Sonnet的代理编码功能,Cline 可以逐步处理复杂的软件开发任务。借助让他创建和编辑文件、探索大型项目、使用浏览器和执行终端命令(在您授予权限后)的工具&…...
【TCAD】Sentaurus 中的“陷阱trap”仿真设置
13.1 陷阱类型 13.2 定义陷阱 13.3 陷阱态密度的类型 13.4 陷阱空间分布 13.5 陷阱占据 13.6 陷阱横截面 13.7 陷阱作为掺杂 13.8 陷阱填充控制 13.9 陷阱可视化 目标 演示如何使用 Sentaurus 设备在模拟中使用陷阱。13.1 陷阱类型...
Lucene硬核解析专题系列(三):查询解析与执行
Lucene的索引构建为高效搜索奠定了基础,而查询解析与执行则是将用户意图转化为实际结果的关键环节。本篇将从查询的解析开始,逐步深入到查询类型、评分模型和执行流程,揭示Lucene搜索能力的底层原理。 一、查询语法与QueryParser的工作原理 Lucene的查询过程始于用户输入的…...
Linux操作系统5-进程信号3(信号产生总结与核心转储)
上篇文章:Linux操作系统5-进程信号2(信号的4种产生方式,signal系统调用)-CSDN博客 本篇Gitee仓库:myLerningCode/l25 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:核心…...
家用可燃气体探测器——家庭燃气安全的坚实防线
随着社会的发展和变迁,天然气为我们的生活带来了诸多便利,无论是烹饪美食,还是温暖取暖,都离不开它的支持。然而,燃气安全隐患如影随形,一旦发生泄漏,可能引发爆炸、火灾等严重事故,…...
【学习笔记】网络设备(华为交换机)基础知识 9 —— 堆叠配置
提示:学习华为交换机堆叠配置,含堆叠的概念、功能、角色、ID和优先级;堆叠的建立过程以及注意事项;包含堆叠的配置命令,以及堆叠的配置案例 一、前期准备 1.已经可以正常访问交换机的命令行接口 Console口本地访问教…...
