目录

标准输出(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++)相关推荐

  1. php psr2规范,php标准规范详解

    本文主要和大家分享php标准规范详解,希望能帮助到大家. psr0:自动加载标准已经被 psr4 替代,可以了解下 1. 强制:完全限定命名空间和类的格式:\\(\)* 2. 强制:每个命名空间必须有 ...

  2. go标准命令详解0.2 go install

    搬运自github赫林的go_command_tutorial,绝对干货,感谢作者. 0.2 go install 命令Go install用于编译并安装指定的代码包及它们的依赖包.当指定的代码包的依 ...

  3. go标准命令详解0.1 go build

    搬运自github赫林的go_command_tutorial,绝对干货,感谢作者. 为了让讲解更具关联性,也为了让读者能够更容易的理解这些命令和工具,本教程并不会按照这些命令的字典顺序讲解它们,而会 ...

  4. python姓名输出语句_Python最基本的输入输出详解

    输出 用print加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print 'hello, world' print语句也 ...

  5. ANSI、C99、C11 标准区别详解

    一.ANSI C 标准 美国国家标准协会(ANSI)为创立 C 语言的一套标准,于 1989 年完成,因此常被称为 C89. 在 KEIL 中使用的是 ANSIC C 标准(C89 标准),定义变量一 ...

  6. MD5 标准算法详解

    1 简介 视频参考(本文参考视频中的例子) 目的: 将任意长度的明文,转化为128位的哈希值 例如将 123456 转化成 e10adc3949ba59abbe56e057f20f883e (16进制 ...

  7. DES 数据加密标准 结构详解

    DES Data Encryption Standard,又称数据加密标准,是一种对称加密算法,也是密码学摆脱古典流加密后最简单的一种块加密算法.由于香农与1949年提出"完善保密性&quo ...

  8. lstm 输入数据维度_[mcj]pytorch中LSTM的输入输出解释||LSTM输入输出详解

    最近想了解一些关于LSTM的相关知识,在进行代码测试的时候,有个地方一直比较疑惑,关于LSTM的输入和输出问题.一直不清楚在pytorch里面该如何定义LSTM的输入和输出.首先看个pytorch官方 ...

  9. 台式计算机显示器的分辨率,电脑屏幕分辨率多少合适 屏幕分辨率标准【详解】...

    电脑屏幕分辨率多少合适? 通常情况下,图像的分辨率越高,所包含的像素就越多,图像就越清晰,印刷的质量也就越好.同时,它也会增加文件占用的存储空间.在屏幕尺寸不变的情况下,其分辨率不能越过它的最大合理限 ...

  10. 【python】标准库详解

    注:最后有面试挑战,看看自己掌握了吗 文章目录 Standard Library简介 python内置对象 如何安装发布第三方模块 10最好用的模块汇总 包的本质 datetime模块 案例 Math ...

最新文章

  1. mxnet中symbol的网络结构输出(参数维度,和每层输出维度)
  2. 资源 | 《统计学习方法》的Python 3.6复现,实测可用
  3. SSM项目各层单元测试
  4. IE6/IE7下:inline-block不兼容的问题
  5. Api文档生成工具与Api文档的传播(pdf)
  6. 【Android开发】我的第一个安卓程序
  7. 给我往死里贪——HRBUST - 1167-每种面值的货币要多少
  8. python比较两张图片是否一样_opencv_判断两张图片是否相同
  9. 用 RSocket 解决响应式服务之间的通讯
  10. Windows 2000 安全检查清单( 摘自《网络与安全》)
  11. 关于图片格式的选择,jpg、png、gif、svg
  12. 微软应用商店Ubuntu 20.04 LTS打开0x8007019e错误解决
  13. win服务器系统设置休眠时间,win7系统电脑设置休眠时间的操作方法
  14. 对话清华大学周昊,详解IJCAI杰出论文及其背后的故事
  15. AI 搜房,贝壳找房的Milvus实践
  16. 关于“AHCI模式”解析
  17. 关于把小写数字转化为大写数字的java代码
  18. ic和mos怎么区分_MOS管和IGBT管的定义是什么与怎么辨别呢?
  19. 如何用div+css布局页面
  20. vue项目中动态创建模块以满足客户定制化需求的解决方案

热门文章

  1. 如何在 Azure 虚拟机里配置条带化
  2. 大学的最后一年有一门课程叫“人生”。
  3. C# 让应用程序只运行一个实例
  4. 小程序键盘遮挡输入框情况之一
  5. 算法:整数除法上取整
  6. 智慧交通前瞻:如何解决城市发展“心病”?
  7. Matlab学习(可以用MATLAB作曲)
  8. 转科普CPU Cache line
  9. Linux组件封装(一)中互斥锁MutexLock的封装
  10. Cisco实例1—构建高可用性DM×××网络2—方案设计