C++顺序结构(3)、数据类型_____教学

news/2024/10/18 15:49:45/文章来源:https://www.cnblogs.com/citStudy/p/18474397

一、设置域宽setw()

输出的内容所占的总宽度成为域宽,有些高级语言中称为场宽。
使用setw()前,必须包含头文件iomanip,即#include<iomanip>
头文件iomanip,用来声明一些“流操作符”,需要一定格式输入输出时,就需要用到它,比较常用的有设置域宽、设置左右对齐、设置实数的精确度等。
setw(n)的作用是设置输出宽度为n,默认为右对齐,并且用空格填充。例如:cout << std::setw(5) << "0" << "1" << endl,该语句就是设置字符串"0"的输出宽度为5,默认为右对齐,空格填充。若想使用其他符号填充(例如用'*'填充),则可以用cout << std::setw(5) << setfill('*') << "0" << "1" << endl;如果想修改成左对齐,则只需要在std::setw(n)之前加上std::left即可。
setw()只对直接跟在后面的输出数据起作用。
当要输出的字符串宽度大于setw设置的宽度n时,直接输出想要输出的字符串即可(此时忽视setw设置的宽度)。

通过运行如下测试代码即可了解setw()的规则:

#include <iomanip>
#include <iostream>
#include<string.h>
using namespace std;
int main()
{/*默认为右对齐,此时加不加std::right都可以 */cout << std::setw(5) << "0" << "1" << endl;cout << std::setw(5) << "00" << "1" << endl;cout << std::setw(5) << "000" << "1" << endl;/*用<<left或者std::left改成左对齐*/cout << std::left << std::setw(5) << "0" << "1" << endl;cout << std::left << std::setw(5) << "00" << "1" << endl;cout << std::left << std::setw(5) << "000" << "1" << endl;/*当要输出的字符串宽度大于setw设置的宽度时,直接输出想要输出的字符串即可*/cout << std::right <<std::setw(5) << "0000000" << "1" << endl;/*用其他符号填充*/cout << std::right <<std::setw(5) << setfill('*') << "0" << "1" << endl;cout << std::left << std::setw(5) << setfill('*') << "0" << "1" << endl;return 0;
}

英汉小词典:
iomanip:io是输入输出的缩写;
manip:是manipulator(操纵器)的缩写;
setw:set width的缩写,设置域宽;

二、cin语句

cin>>a;输入一个数并赋值给变量a。
习惯上,将"cin"和流提取运算符">>"实现的输入语句简称为cin语句。
C++编程语言I/O流中的标准输入流,需要包含iostream头文件,即#include ,cin 分为两个音节 读为 "c in",音标 "/si:ɪn/"。
cin代表标准输入设备,使用右移运算符 ">>" 从设备键盘取得数据,送到输入流对象cin中,然后送到内存。

使用cin可以获得多个从键盘的输入值,其具体使用格式如下:
cin >> 变量1 >>变量2...>>变量n

示例:风之巅小学向全校师生发出“植树造林,还我绿色”的倡议,鼓励大家多植树,创造绿色家园,同学们都积极响应。向日葵班有43人,平均每人种2棵树;苹果班42人,平均每人种3棵树;草莓班45人,平均每人种2棵树。
当程序运行时,每班人数和平均每人种的颗数由客户输入,程序算出该班种的总颗数。
每个班的学生人数是不一样的,平均每人种树的棵数也会不一样,每次运行时都要更改程序,很不方便。能不能实现这样的功能:当程序运行时,每个班的人数和平均每人种的棵数由我们自己输入,程序能根据输入的数值计算出总的棵数?
由cin来实现,如cin>a的作用是输入一个数并赋值给变量a。

三、输入输出.格式化

1. 输出

对于格式化输出,本节课将学习两个函数 scanf()printf() 来取代之前的cin和cout方法;

  • 假如,我们要输出一组运算等式:1 + 2 = 3,而1是变量a,2是变量b,3是a+b的运算结果;
int a = 1, b = 2;
// cout
cout << a << " + " << b << " = " << a + b;cout << endl;// printf
printf("%d + %d = %d", a, b, a + b);
  • printf() 函数极其方便的原因,它可以先按照自己的输出格式,先写出来,不需要头脑翻译;

  • 然后把需要替换成变量的部分,用 %d 来表示即可,而后续对应的位置换成变量或表达式运算即可;

  • %d 这里表示占位的内容 是 整型,也有各种其它的占位符,这里罗列出常用的几个:

    占位控制符 说明
    %d 整数
    %f 浮点数(float)
    %c 字符
    %s 字符串
  • 最终的语法结构如下:

    printf(格式控制符, 占位替换列表)
    

2. 输入

  • 从上面例子中,我们使用 scanf() 函数来控制输入:

    int a, b;
    // scanf
    scanf("%d %d", &a, &b);// printf
    printf("%d + %d = %d", a, b, a + b);
    
  • 先了解下输入参数的格式需求:

    scanf(格式控制符, 地址集)
    

四、单精度实数float

例程1:金字塔的底是正方形,侧面由四个大小相等的等腰三角形构成。试编一程序,输入底和高,输出三角形的面积。

五、整除及整除求余运算符的应用

"%"在C++中是整除求余的运算符,又叫模运算符。
例程1:试编一程序,输入一个两位数,交换十位与个位上的数字,并输出。

六、ASCII码与字符型

计算机中的所有数据在存储和运算时都是用二进制数表示,而具体用哪些二进制数字表示,每个人都可以约定自己的一套编码。大家如果想要互相通信而不造成混乱,那么就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码(美国标准信息交换代码)。标准ASCII码(基础ASCII码)使用指定的7位二进制数组合来表示128种可能的字符。基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。虽然标准 ASCII 码是 7 位编码,但由于计算机基本处理单位为字节( 1byte = 8bit ),所以一般仍以一个字节来存放一个 ASCII 字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为 0 (在数据传输时可用作奇偶校验位)。

字符 ASCII值 字符 ASCII值
空格 32 0 48
9 57 A 65
Z 90 a 97
z 122


将一个字符常量存放到内存单元时,实际上并不是把该字符本身存放到内存单元中,而是将该字符相应的ASCII码存放到存储单元中。如下图,字符变量k的值为'A'。


既然字符数据是以ASCII码存储的,它的存储形式就与整数的存储形式类似。这样,C++中字符型数据和整型数据之间就可以互相通用。一个字符数据可以赋给一个整型变量,反之,一个整型数据可以赋给一个字符变量。对字符数据进行算术运算,其实对它们的ASCII码进行算术运算。
字符型数据,只能包含一个字符,用一对单撇号括起来,如'+'、'b'、'8'、'#'等,用关键字char定义字符型变量。

例程:试编一程序,输入一个小写字母,输出其大写字母。

注:字符'A'的ASCII码是65,字符'a'的ASCII码是97,两者的差值为32。

七、 数据类型.转换

1. 数据类型

类型名 类型声明 解释说明
整型 int -2147483648 到 2147483647 的范围的整数
长整形 long long 比上面大很多很多,这里装不下,具体搜索
字符型 char 赋值只能是一个字符,比如 'A',必须用单引号,双表示字符串不是字符
浮点型 float 也叫实型或小数型,38位以内的小数,只保留6为有效数字
  • 其实还有很多类型,暂时先理解这几个,后续用到的再单独讲解;

    // 字符型,切记是单引号
    char ch = 'a';
    

// 长整形
long long b = 100000000000000000;
// 浮点型,只能六位
float c = 3.1415926;
cout << b << endl;
cout << ch << endl;
cout << c << endl;
return 0;

### 2. 类型转换- 这里我们只探讨整数和小数之间的转换,其它的放到以后;- 类型转换分为两种:隐式转换和强制转换;```c++
// 两边都是整数,结果也是整数:1
cout << 8 / 5 << endl;
// 两边有一边是浮点,结果是浮点:1.6
cout << 8.0 / 5 << endl;
// 强制转换浮点,float()是转换函数,将整数转换成浮点数,8叫做参数
cout << float(8) / 5 << endl;
// 强制转换整型
cout << int(3.14 * 5.25) << endl;

3. 保留小数点

  • 首先要引入相关库:

  • 其次使用 setprecision(n) 函数 来设置保留小数点的位数;

    // 输出保留的小数点
    // fixed可以在缺少的位数补零,这样就精确保证2位
    cout << fixed << setprecision(2) << 3.1415926;
    

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCity: Open Spatio-Temporal Foundation Models for Traffic Prediction

1. 数据准备 在这个数据处理过程中,以数据集 PEMS07M 为例,整个数据抽取和划分过程如下:初始数据维度:原始训练数据 data_train 的维度为 (12672, 228, 3)。其中:12672 表示时间步数,代表不同的时间点采样的数据。 228 表示空间节点数(例如不同的交通站点)。 3 表示每个…

04C++顺序结构(3)

1、设置域宽setw(); 2、cin语句; 3、输入输出.格式化一、设置域宽setw() 输出的内容所占的总宽度成为域宽,有些高级语言中称为场宽。 使用setw()前,必须包含头文件iomanip,即#include<iomanip> 头文件iomanip,用来声明一些“流操作符”,需要一定格式输入输出时,就…

轻松上手-MVVM模式_关系型数据库_云函数T云数据库

作者:狼哥 团队:坚果派 团队介绍:坚果派由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉。团队成员聚集在北京,上海,南京,深圳,广州,宁…

九宫格自由流转拼图游戏

作者:狼哥 团队:坚果派 团队介绍:坚果派由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉。团队成员聚集在北京,上海,南京,深圳,广州,宁…

数据预处理-DataFrame切片

此Blog仅作为日常学习工作中记录使用,Blog中有不足之处欢迎指出 以kaggle中房屋预测的训练集为例,说明DataFrame切片常用操作 一、读入数据 import numpy as np import pandas as pdfile_path = ***\kaggle_house_pred_train.csv data = pd.read_csv(file_path)data.columns …

轻松上手-Navigation路由 H5

作者:狼哥 团队:坚果派 团队介绍:坚果派由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉。团队成员聚集在北京,上海,南京,深圳,广州,宁…

Audio

音频文件导入 常用格式wav mp3 aiff音频文件属性设置Force To Mono:多声道转单声道; Normalize:强制为单声道时,混合过程中被标准化 Load In Background:在后台加载时,不阻塞主线程 Ambisonic:立体混响声,非常适合360度视频和XR应用程序,如果音频文件包含立体混响声编…

RenderTexture

基础概念 RenderTexture 在Unity中,RenderTexture是一种纹理,它可以在运行时动态地生成图像数据,并且可以作为着色器的输入或者显示在游戏世界的任何材质上。简单来说,RenderTexture让你能够将场景或特定相机的渲染结果捕获到一个纹理中,然后这个纹理可以被用作其他渲染过…

九点共圆及其圆心证明(证明过程已更新)

九点共圆及其圆心证明主要思路:固定 \(P,L\),证明其它七个点均在以 \(PL\) 为直径的圆上。 条件的来源会备注在括号内。背景可能影响观感,建议打开极简模式阅读。这是一个三角形 \(\triangle ABC\),设 \(BC,AC,AB\) 边上垂足分别为 \(D,E,F\),其边上中点分别为 \(L,M,N\),…

【喜讯】全球电商大数据平台推出F类免费API接口服务!

好消息,全球电商大数据平台再次上线多个类别接口,首次推出F类免费API接口服务,为所有追求数据赋能、寻求创新突破的企业和个人,带来了前所未有的机遇。好消息,值此之际;全球电商大数据平台再次上线多个类别接口,首次推出F类免费API接口服务,为所有追求数据赋能、寻求创…

c# winform在线升级clickonce

说明:在线升级前提 1,一个可以访问在线的地址,2,发布前要在项目属性发布里配置好相关设置 一,可以在IIS上布署一个可以访问的地址 二,发布前配置

SQLSEVER 实现货币数字转中文汉字

SQLSEVER 实现数字转换成中文(货币) -- ============================================= -- Author: LearnerPing -- Create date: 2024/10/18 -- Description: Change Number to Chinese -- ============================================= Create FUNCTION GetNumberToChi…