【C++】 基础复习 | 数据类型,输入,输出流 scanf printf
文章目录
- 1 基本数据类型
- 1.1 基本数据类型
- 1.2 构造类型
- 1.3 指针类型(Pointers)
- 2 基础输入输出
- 2.1 通过输入输出操作符>> <<
- 2.2 通过scanf和printf输入和输出
- 2.2.1 输出`printf` 函数
- 2.2.2 输出`scanf` 函数
- 2.2.3 注意事项
1 基本数据类型
了解数据类型有什么用?
首先就是知道存储的大致的范围,避免超过越界
再者方便输入输出
1.1 基本数据类型
- 整型(Integral types)
int
:标准整数类型。通常占用 4 个字节,范围通常是 -2,147,483,648 到 2,147,483,647。short
:短整数类型。通常占用 2 个字节,范围通常是 -32,768 到 32,767。long
:长整数类型。通常占用 4 个或 8 个字节,范围取决于具体实现。long long
:更长的整数类型。通常占用 8 个字节,范围是 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。unsigned
版本:可以用于上述所有类型,表示无符号整数(例如unsigned int
,unsigned short
等)。
- 字符型(Character types)
char
:字符类型。通常占用 1 个字节,范围是 -128 到 127 或 0 到 255(取决于是否为有符号类型)。unsigned char
:无符号字符类型。范围是 0 到 255。signed char
:有符号字符类型。范围是 -128 到 127。
- 浮点型(Floating-point types)
float
:单精度浮点数。通常占用 4 个字节,范围大约是 1.2E-38 到 3.4E+38,精度大约为 6 位小数。double
:双精度浮点数。通常占用 8 个字节,范围大约是 2.3E-308 到 1.7E+308,精度大约为 15 位小数。long double
:扩展精度浮点数。通常占用 12 或 16 个字节,范围和精度取决于具体实现。
- 布尔型(Boolean type)
bool
:布尔类型。只有两个值:true
和false
。
1.2 构造类型
-
数组(Arrays)
- 用于存储相同类型元素的集合。例如,
int arr[10];
定义了一个包含 10 个整数的数组。
- 用于存储相同类型元素的集合。例如,
-
结构体(Structures)
-
用户定义的复合数据类型,用于将不同类型的数据组合在一起。例如:
struct Person {std::string name;int age;float height; };
-
-
联合体(Unions)
-
类似于结构体,但所有成员共享同一块内存。例如:
union Data {int i;float f;char c; };
-
-
枚举(Enumerations)
-
定义一组命名的整型常量。例如:
enum Color { RED, GREEN, BLUE };
-
1.3 指针类型(Pointers)
-
存储内存地址的变量。指针类型包括指向基本类型、构造类型和函数的指针。例如:
int *ptr;
还有空类型
void
:用于表示没有类型。通常用于函数返回类型,表示函数不返回任何值。
类型别名
-
使用
typedef
定义类型别名。例如:typedef unsigned int uint;
示例代码:
#include <iostream>
#include <string>int main() {int a = 10;float b = 3.14f;double c = 2.718281828;char d = 'A';bool e = true;std::string str = "Hello, World!";int arr[5] = {1, 2, 3, 4, 5};struct Person {std::string name;int age;};Person p = {"Alice", 30};std::cout << "int: " << a << std::endl;std::cout << "float: " << b << std::endl;std::cout << "double: " << c << std::endl;std::cout << "char: " << d << std::endl;std::cout << "bool: " << e << std::endl;std::cout << "string: " << str << std::endl;for(int i = 0; i < 5; i++) {std::cout << "arr[" << i << "]: " << arr[i] << std::endl;}std::cout << "Person name: " << p.name << ", age: " << p.age << std::endl;return 0;
}
2 基础输入输出
2.1 通过输入输出操作符>> <<
-
输入操作符 >> 用于从输入流中提取数据并将其存储到变量中。
-
语法:变量名 >> 输入数据
-
输出操作符 << 用于将数据输出到输出流中。
-
语法:输出流对象 << 数据
例子:
int age;
cout << "请输入您的年龄: ";
cin >> age;
cout << "您的年龄是: " << age << endl;
这个其实很好理解,也是很多人上来去学习C++输入输出的第一件事情。
称做流式输入输出,<< 其实指明了流动的方向,所以非常亲民
在这种情况下如果想控制输出,即满足一定格式输出,比如保留几位小数什么的,就要用manipulator了
- 常用的 manipulator 包括:
- setw(n):设置输出宽度,不足部分用空格填充。
- setprecision(n):设置精度,控制小数点后显示的位数。
- left:左对齐。
- right:右对齐。
- fixed:固定格式输出小数。
- scientific:科学计数法输出。
2.2 通过scanf和printf输入和输出
scanf
和 printf
是 C 语言中两个非常重要的标准输入输出函数,它们分别用于从标准输入(通常是键盘)读取数据和向标准输出(通常是屏幕)打印数据。
相比较cin和cout,scanf和printf往往会更加的高效
2.2.1 输出printf
函数
printf
函数用于格式化输出数据。它的基本语法如下:
int printf(const char *format, ...);
format
是一个格式字符串,指定了输出的格式。这里的格式指定,可以添加其他字符,增加空格什么的,非常强大...
是可变参数列表,指定了要输出的数据。
format
字符串可以包含以下几种内容:
- 普通字符,会原样输出。
- 格式说明符,用于指定如何输出变量的值。
常见的格式说明符有:
%d
:输出整数%f
:输出浮点数%c
:输出单个字符%s
:输出字符串%x
:输出十六进制整数
示例:
#include <stdio.h>int main() {int num = 10;float pi = 3.1415926;char letter = 'A';char str[] = "Hello, World!";printf("整数: %d\n", num);printf("浮点数: %.2f\n", pi);printf("字符: %c\n", letter);printf("字符串: %s\n", str);return 0;
}
输出
整数: 10
浮点数: 3.14
字符: A
字符串: Hello, World!
重要知识点
1 可以看到如果想要保留两位小数,则直接%.2f就可以了
2 会看到有\n 代表换行,这是一种特殊的字符
3 多个变量输出
#include<iostream>
using namespace std;
int main(){int a=3;int b=5;printf("%d %d",a,b);
}
2.2.2 输出scanf
函数
scanf
函数用于从标准输入读取数据,并根据格式字符串解析这些数据。它的基本语法如下:
int scanf(const char *format, ...);
format
是一个格式字符串,指定了输入数据的格式。...
是指向变量的指针,用于存储读取到的数据。
format
字符串可以包含格式说明符,这些说明符与 printf
中的类似,但需要注意的是,scanf
需要变量的地址 ,即前面需要加一个&。注意字符串的话则不需要,具体看下面的例子
常见的格式说明符有:
%d
:读取整数%f
:读取浮点数%c
:读取单个字符%s
:读取字符串
示例:
#include <stdio.h>int main() {int num;float pi;char letter;char str[50];printf("请输入一个整数: ");scanf("%d", &num);printf("请输入一个浮点数: ");scanf("%f", &pi);printf("请输入一个字符: ");scanf(" %c", &letter);printf("请输入一个字符串: ");scanf("%s", str);printf("你输入的整数是: %d\n", num);printf("你输入的浮点数是: %.2f\n", pi);printf("你输入的字符是: %c\n", letter);printf("你输入的字符串是: %s\n", str);return 0;
}
2.2.3 注意事项
scanf
的格式说明符前必须带上变量的地址符&
,但对字符数组(字符串)不需要。printf
和scanf
的格式说明符要严格匹配变量类型,否则可能导致未定义行为。scanf
读取字符串时,遇到空格会停止,可以使用fgets
代替,以读取整行输入。
相关文章:
【C++】 基础复习 | 数据类型,输入,输出流 scanf printf
文章目录 1 基本数据类型1.1 基本数据类型1.2 构造类型1.3 指针类型(Pointers) 2 基础输入输出2.1 通过输入输出操作符>> <<2.2 通过scanf和printf输入和输出2.2.1 输出printf 函数2.2.2 输出scanf 函数2.2.3 注意事项 1 基本数据类型 了解…...
linux pxe和无人值守
一 PXE和无人值守 pxe c/s模式 允许客户端通过网络从远程服务器(服务端)下载引导镜像 加载安装文件 实现自动化安装操作系统 无人值守 就是安装选项不需要认为干预 可以自动化实现 pxe的优点 1 规模化 同时装配多台服务器 20多 30台 2 自动化 …...
Questflow借助MongoDB Atlas以AI重新定义未来工作方式
MongoDB客户案例导读 Questflow借助MongoDB Atlas赋能AI员工,助力中小型初创企业自动化工作流程,简化数据分析,提升客户体验,推动AI与员工的协作,重新定义未来工作方式。 协作式AI自动化平台 无需编码即可拥有自己的…...
数值计算精度问题(浮点型和双整型累加精度测试)
这篇博客介绍双整型和浮点数累加精度问题,运动控制轨迹规划公式有大量对时间轴的周期累加过程,如果我们采用浮点数进行累加,势必会影响计算精度。速度的不同 进一步影响位置积分运算。轨迹规划相关问题请参考下面系列文章,这里不再赘述: 1、博途PLC 1200/1500PLC S型速度曲…...
算法训练营day56
题目1:300. 最长递增子序列 - 力扣(LeetCode) class Solution { public:int lengthOfLIS(vector<int>& nums) {// dp数组含义是第i个数的严格递增子序列的长度// 内层的递推公式就是 取 0 到 i - 1之间最大的dp数组 然后 1vector…...
基于STM32的智能水产养殖系统(二)
TPS5433IDR TPS5433IDR 是一款由德州仪器 (Texas Instruments) 生产的高效降压转换器(Buck Converter)。它能够将较高的输入电压转换为较低的输出电压,适用于各种电源管理应用。 主要特性 输入电压范围: 5.5V 至 36V输出电压范围: 0.9V 至 …...
[工具探索]富士mini90拍立得使用指南
文章目录 1. 基本功能介绍1.1 相机外观1.2 电池与胶片 2. 设置相机2.1 装入电池2.2 装入胶片 3. 拍摄模式3.1 标准模式3.2 儿童模式3.3 远景模式3.4 双重曝光模式3.5 Bulb(B)模式3.6 **派对模式**3.7 微距模式3.8 **亮度模式**3.9 **定时拍摄模式**3.10 …...
VMware导入小白分享的MacOS版本之后,无法开机的解决方案
前言 这段时间陆续有小伙伴找到小白,说:导入小白分享的MacOS版本之后,出现无法开机的问题。 遇到这个问题,并不是说明分享版本有问题,因为大部分小伙伴导入之后都没有出现类似的问题,都是导入之后开机&…...
【CSAPP导读】导论
目录 🌈 前言🌈 📁 书籍介绍 📁 阅读路线 📁 总结 🌈 前言🌈 《深入理解计算机系统》书籍是由布赖恩特(Bryant,R.E.)著的一本经典计算机科学教材,常被简称为"CSAPP"&a…...
“新E代弯道王”MAZDA EZ-6亮相2024重庆国际车展
6月7日-6月16日,第二十六届重庆国际车展隆重开幕,合资品牌首款基于纯电平台的新能源轿车MAZDA EZ-6(以下称EZ-6)领衔长安马自达全系车型亮相N8馆T01展台。车展期间,重庆及周边地区的马自达用户、粉丝、车友可前往长安马…...
【lesson11】客户端backUp类的实现
文章目录 成员变量成员函数backUpgetFileIdentifierisNeedUploadupLoadRunMoudle 成员变量 private:std::string _back_dir;//备份文件夹路径名dataManager* _data;//dataManager指针对象成员函数 backUp backUp(const std::string& back_dir, const std::string& b…...
数据结构--关键路径
事件v1-表示整个工程开始(源点:入度为0的顶点) 事件v9-表示整个工程结束(汇点:出度为0的顶点) 关键路径:路径长度最长的路径 求解关键路径问题(AOE网) 定义四个描述量 …...
SSTI注入漏洞
SSTI注入漏洞 1.SSTI注入概述2.SSTI检测工具3.SSTI利用方法Java基本FreeMarker (Java)ThymeleafSpring Framework (Java)Spring视图操作(Java)Smarty (PHP)Twig (PHP)Jade (NodeJS)NUNJUCKS (NodeJS)ERB (Ruby)Jinja2 (Python)Mako (Python)ASP 1.SSTI注…...
Day11 - Day15
Day11 - Day15 Day11(1998年Text1) Perhaps it is humankind’s long suffering at the mercy of flood and drought that makes the idea of forcing the waters to do our bidding so fascinating. 也许正是人类长期在洪水和干旱支配下所遭受的苦难&a…...
启航信息学奥林匹克:青少年NOI学习路线与策略指南
在全球范围内,信息学奥林匹克竞赛(NOI)不仅是青少年展示编程和算法能力的舞台,更是未来计算机科学家和工程师的摇篮。本文将为志在参加NOI的青少年们提供一条清晰的学习路线和实用的建议,帮助你们在这条充满挑战与机遇…...
易舟云财务软件:数字化时代的财务管家
在数字化浪潮的推动下,财务软件成为了企业提升财务管理效率、实现数字化转型的关键工具。易舟云财务软件,正是这样一款深受企业喜爱的财务管理系统。本文将带你详细了解易舟云财务软件的特点、版本区别以及如何使用它来优化财务工作。 易舟云财务软件的特…...
catia零件装配中通过指南针移动零件
1 将零件导入进来后 2 把指南针移动到零件上 具体移动哪个可以通过模型树点击选中,选中那个就可以移动那个。 这种情况需要注意的是 需要双击选择要移动零件的父节点 如下图,Product2蓝色表示是激活的,这样才可以单击选中下面的零件后通过…...
如何使用免费的 Instant Data Scraper快速抓取网页数据
Instant Data Scraper 是一款非常简单易用的网页数据爬虫工具,你不需要任何代码知识,只需要点几下鼠标,就可以把你想要的数据下载到表格里面。以下是详细的使用步骤: 第一步:安装 Instant Data Scraper 打开谷歌浏览…...
【仿真建模-anylogic】事件之手动定时触发
Author:赵志乾 Date:2024-06-11 Declaration:All Right Reserved!!! 问题:建模过程中经常遇到需要临时规划特定逻辑执行时机的场景; 解决方案:在Event的User Control模…...
ElasticSearch学习笔记之三:Logstash数据分析
第3章 Logstash数据分析 Logstash使用管道方式进行日志的搜集处理和输出。有点类似*NIX系统的管道命令 xxx | ccc | ddd,xxx执行完了会执行ccc,然后执行ddd。 在logstash中,包括了三个阶段: 输入input --> 处理filter(不是必须…...
求职力扣刷题DAY20--二叉树 part06
20 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 n…...
Error:Kotlin: Module was compiled with an incompatible version of Kotlin.
一、问题:运行spring boot项目时,idea报出错误:时提示报错如下图: 错误代码: Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected …...
关于flutter 启动 页面加载空白(三四秒空白页面)
一:可以在 对应的xml配置启动动画 <item><bitmapandroid:gravity"center"android:src"mipmap/ic_launcher" /></item> 二:以下是对应的文件目录 注意事项:俩处xml都配置一下,配置一样就可以了...
计量校准证书和检定证书区别,企业仪器校准要哪种证书好?
很多企业做校准,会要求校准机构出具相关证书,而有时候也会被机构询问,是要做检定还是校准,出具的证书是要校准证书还是检定证书?那么两者有什么区别呢? 1-检测方式不同 首先两种证书是不同检测方式所给的证…...
解析Java中1000个常用类:StackWalker类,你学会了吗?
推荐一个我自己写的小报童专栏导航网站: http://xbt100.top 收录了生财有术项目精选、AI海外赚钱、纯银的产品分析等专栏,陆续会收录更多的专栏,欢迎体验~复制URL可直达。 以下是正文。 Java 9 引入了许多新特性,其中之一是 StackWalker 类。StackWalker 提供了一种高效…...
【代码随想录算法训练Day32】LeetCode 122 买卖股票的最佳时机 II、LeetCode 55.跳跃游戏、LeetCode 45.跳跃游戏II
Day32 贪心第二天 LeetCode 122 买卖股票的最佳时机 II 思路真是无比巧妙,把区间利润拆成每天的利润,其实就是算出每天的利润,然后只取其中的正值即可。 在代码中计算是否计算加时还与0取最大值,相当于大于0才加入。 class Sol…...
Qt之QGraphicsView —— 笔记3:矩形图元连接(附完整源码)
效果 完整源码 注意:在ui文件中拖入一个QGraphicsView类窗口控件,然后用MyGraphicsView提升该类。 main.cpp #include "widget.h" #include <QApplication>int main(...
2024年,计算机相关专业还值得选择吗?
2024年,计算机相关专业还值得选择吗? 随着2024年高考落幕,数百万高三学生又将面临人生中的重要抉择:选择大学专业。在这个关键节点,计算机相关专业是否仍是“万金油”的选择?在过去很长一段时间里…...
流批一体计算引擎-10-[Flink]中的常用算子和DataStream转换
pyflink 处理 kafka数据 1 DataStream API 示例代码 从非空集合中读取数据,并将结果写入本地文件系统。 from pyflink.common.serialization import Encoder from pyflink.common.typeinfo import Types from pyflink.datastream import StreamExecutionEnviron…...
Java进阶_多态特性
生活中的多态 多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 现实中,比如我们按下 F1 键这个动作,同一个事件发生在不同的对象上会产生不同的结果。…...
浙江省建设厅官方网站信用平台/2019年度最火关键词
开始菜单项的顺序保存在以下注册表中: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder 这个项下面一般有:Favorites、Start Menu、Start Menu2这3个子项,分别对应的是:收藏夹、经典开始菜单、…...
网站做业务赚钱/平台推广方式
基于图神经网络的图表征学习方法 开源学习地址:datawhale-基于图神经网络的图表征学习方法 1.基于图同构网络(GIN)的图表征模块(GINGraphRepr Module) import torch from torch import nn from torch_geometric.nn.glob import global_add_p…...
怎么在一个网站做多个页面/网站推广seo
什么是盲注? 当应用程序易受SQL注入攻击,但其HTTP响应不包含相关SQL查询的结果或任何数据库错误的详细信息时,就会出现盲SQL注入。 对于盲目SQL注入漏洞,许多技术(如联合攻击)都是无效的,因为…...
网站整体风格设计/一个关键词要刷多久
工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一同学习一下引用指针 函数是C/C程序的基本功能单元,其重要性不言而喻。函数设计的纤细缺点很容易致使该函数被错用,所以光使函数的功能正确是不敷的。本章重点论述…...
wordpress复制按钮插件/b2b平台有哪些网站
打算从今天开始学java啊,待会滚去找资料了。现在谈一下学习java阶段性的理解。由于现在对java真的啥也不知道啊,不过还是要瞎鸡儿写点自己的看法,以下看法应该也使适用于其它语言: 第一阶段,入门级,初步地总…...