标准输入输出详解(C++)
目录
标准输出(printf)的使用
格式控制字符串
转义字符\
标准输入(scanf)的使用
标准输出(printf)的使用
前面学习了cout,可以通过cout将数据输出到控制台上。
printf也是将数据往控制台上输出的一个函数,使用这个函数,我们需要引入cstdio文件,即#include<cstdio>。下面我们来讲讲printf函数:
1、printf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是: printf("格式化字符串", 变量名)。
#include<cstdio>
int main()
{int a=3;printf("a的值是%d",a);return 0;
}
2、直接输出想要打印在屏幕上的文字:
printf("百度经验!\n");
printf("今天天气不错!\n");
3、输出整数,以固定长度输出整数:
int a1=1;
int a2=10;
int a3=100;
printf("The result is %d\n",a1);
printf("The result is %3d\n",a1);
printf("The result is %3d\n",a2);
printf("The result is %3d\n",a3);
其中的%d代表后面的变量,d表示整数,d前面的整数代表该整数输出时会占用多大的空间,一般用于对齐输出。
4、输出小数,保留小数点后固定的位数:
float a=2.01;
printf("The result is %f.\n",a);
printf("The result is %.3f.\n",a);
double b=5.01;
printf("The result is %lf.\n",b);
printf("The result is %.3lf.\n",b);
小数有两种表示方法,一种是float单精度,一种是double双精度,使用起来没有太大的差别,只是double的精度是float精度的两倍,在printf输出时f代表单精度,而lf代表双精度。另外,“.3f”和".3lf"中的点加整数代表需要保留几位小数。
格式控制字符串
格式控制字符串分为非格式字符串和格式字符串两部分。
1、非格式字符串就是我们想直接输出到控制台上的字符串。如:
#include<cstdio>
int main()
{
printf("hello\n");
printf("China\n");
return 0;
}
两个printf函数双引号中的内容都是非格式字符串,可以直接输出到控制台上。
2、格式字符串:%m.n格式字符
①、%:表示格式说明的起始符号,不可缺少。
②、m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精 度。用于说明输出的实型数的小数位数。不指定n时,隐含的精度为6位。
③、格式字符对应想要输入或者输出的变量
格式字符 |
变量类型 |
c |
char |
d |
int |
f |
float |
lf |
double |
s |
字符数组 |
举例一个完整的格式控制字符串:
#include<cstdio>
int main()
{
int a=3;
printf("a的值是%d",a);
return 0;
}
转义字符\
在之前的学习cout的时候,如果想输出一个换行符,可以这样来表示
cout<<endl;
那么在printf中如何换行呢?这里我们就要使用转义字符了。
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
转义字符 |
意义 |
ASCII码值(十进制) |
\r |
回车(CR) |
013 |
\n |
换行(LF) |
010 |
\v |
垂直制表(VT) |
011 |
\b |
退格(BS) |
008 |
上面讲的这些只要记住\n就可以了,输出换行时就可以使用这个转义字符了。
如:printf(“hello\n”)或者cout<<”hello\n”。
标准输入(scanf)的使用
scanf是格式输入函数,功能是在屏幕上输入指定的信息。简单的来说和printf相似却不相同,使用这个函数,我们需要引入cstdio文件,即#include<cstdio>。
scanf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是: scanf调用格式:
scanf("格式字符串",地址列表);
如:
#include<cstdio>
int main()
{int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d,%d,%d",a,b,c);return 0;
}
运行时按如下方式输入三个值:
3□4□5↙(输入a,b,c的值 □代表空格,↙代表enter键)
3,4,5 (printf输出的a,b,c的值)
(1) &a、&b、&c中的&是地址运算符,分别获得这三个变量的内存地址。
(2) "%d%d%d"是按int型值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。
以下是合法输入方式:
① 3□□4□□□□5↙
② 3↙
4□5↙
③ 3(tab键)4↙
5↙
scanf中的格式字符串和printf中的格式控制字符串类似,但是scanf中没有非格式字符串。
有的时候我们在使用scanf函数时,也会这样做:
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
我们看到格式字符串:"%d,%d,%d",%d之间使用逗号进行分割,这样我们在控制台输入数字的时候,也需要用逗号分割:
3,4,5↙(输入a,b,c的值)
格式字符与变量类型一定要一一对应,具体的对应规则请参考格式化字符串的内容。
地址列表:对应一串想要输入的变量的地址(&a,&b,&c),a、b、c为三个变量,使用去地址符(&),加在变量前,就可以获取到变量的地址了。地址列表的顺序一定要与格式字符的顺序一致。
int a;
char c;
scanf("%d,%c",&a,&c);
int a;
char c;
scanf("%d,%c",&c,&a);
上面是对的,格式字符与变量类型对应一致。
下面是错误的。
标准输入输出详解(C++)相关推荐
- php psr2规范,php标准规范详解
本文主要和大家分享php标准规范详解,希望能帮助到大家. psr0:自动加载标准已经被 psr4 替代,可以了解下 1. 强制:完全限定命名空间和类的格式:\\(\)* 2. 强制:每个命名空间必须有 ...
- go标准命令详解0.2 go install
搬运自github赫林的go_command_tutorial,绝对干货,感谢作者. 0.2 go install 命令Go install用于编译并安装指定的代码包及它们的依赖包.当指定的代码包的依 ...
- go标准命令详解0.1 go build
搬运自github赫林的go_command_tutorial,绝对干货,感谢作者. 为了让讲解更具关联性,也为了让读者能够更容易的理解这些命令和工具,本教程并不会按照这些命令的字典顺序讲解它们,而会 ...
- python姓名输出语句_Python最基本的输入输出详解
输出 用print加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print 'hello, world' print语句也 ...
- ANSI、C99、C11 标准区别详解
一.ANSI C 标准 美国国家标准协会(ANSI)为创立 C 语言的一套标准,于 1989 年完成,因此常被称为 C89. 在 KEIL 中使用的是 ANSIC C 标准(C89 标准),定义变量一 ...
- MD5 标准算法详解
1 简介 视频参考(本文参考视频中的例子) 目的: 将任意长度的明文,转化为128位的哈希值 例如将 123456 转化成 e10adc3949ba59abbe56e057f20f883e (16进制 ...
- DES 数据加密标准 结构详解
DES Data Encryption Standard,又称数据加密标准,是一种对称加密算法,也是密码学摆脱古典流加密后最简单的一种块加密算法.由于香农与1949年提出"完善保密性&quo ...
- lstm 输入数据维度_[mcj]pytorch中LSTM的输入输出解释||LSTM输入输出详解
最近想了解一些关于LSTM的相关知识,在进行代码测试的时候,有个地方一直比较疑惑,关于LSTM的输入和输出问题.一直不清楚在pytorch里面该如何定义LSTM的输入和输出.首先看个pytorch官方 ...
- 台式计算机显示器的分辨率,电脑屏幕分辨率多少合适 屏幕分辨率标准【详解】...
电脑屏幕分辨率多少合适? 通常情况下,图像的分辨率越高,所包含的像素就越多,图像就越清晰,印刷的质量也就越好.同时,它也会增加文件占用的存储空间.在屏幕尺寸不变的情况下,其分辨率不能越过它的最大合理限 ...
- 【python】标准库详解
注:最后有面试挑战,看看自己掌握了吗 文章目录 Standard Library简介 python内置对象 如何安装发布第三方模块 10最好用的模块汇总 包的本质 datetime模块 案例 Math ...
最新文章
- mxnet中symbol的网络结构输出(参数维度,和每层输出维度)
- 资源 | 《统计学习方法》的Python 3.6复现,实测可用
- SSM项目各层单元测试
- IE6/IE7下:inline-block不兼容的问题
- Api文档生成工具与Api文档的传播(pdf)
- 【Android开发】我的第一个安卓程序
- 给我往死里贪——HRBUST - 1167-每种面值的货币要多少
- python比较两张图片是否一样_opencv_判断两张图片是否相同
- 用 RSocket 解决响应式服务之间的通讯
- Windows 2000 安全检查清单( 摘自《网络与安全》)
- 关于图片格式的选择,jpg、png、gif、svg
- 微软应用商店Ubuntu 20.04 LTS打开0x8007019e错误解决
- win服务器系统设置休眠时间,win7系统电脑设置休眠时间的操作方法
- 对话清华大学周昊,详解IJCAI杰出论文及其背后的故事
- AI 搜房,贝壳找房的Milvus实践
- 关于“AHCI模式”解析
- 关于把小写数字转化为大写数字的java代码
- ic和mos怎么区分_MOS管和IGBT管的定义是什么与怎么辨别呢?
- 如何用div+css布局页面
- vue项目中动态创建模块以满足客户定制化需求的解决方案