首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

0x05 输入和输出

一个程序如果没有输入和输出, 那将没有任何意义.

视频清晰度比较低, 需要等待腾讯视频开放认证后再上传高清视频, 先说一声抱歉...

计算机是人类的伟大发明, 他的使命是为人类服务的.

他接收输入并且输出结果.

在前面文章中,我们用printf来输出了一句话:HelloWorld.

我们也可以用他来输出其他的信息.

printf("I want to be a hero, and you?");//我希望成为一个英雄, 你呢?

同样,printf还可以用来输出一些可变的信息:

int age = 18;//定义一个变量, 变量名为age,用来代表年龄, 初始值是18

printf("I am %d years old", age);//打印信息

输出结果:I am 18 years old

age = 16;//将age的值修改为16

printf("Now, I am %d", age);//打印信息

输出结果:I am 18 years old

printf会将这句话里面的%d用age的值替换掉.

可以看到,我们得到了想要的输出结果, 但是第一次运行的时候,所有的输出都在同一行,这不便于阅读,然后在printf中的句子后面加上一个'\n', 再次运行就可以换行输出了.

printf为什么呢完成输出这件事呢? 它的工作原理是怎样的?

我们目前只知道printf是一个函数, 他的功能是打印一串句话.现在让我们详细的了解一下这个函数.

printf的格式是这样的:printf("格式化字符串", 参数列表);

格式化字符串是一句话, 我们称之为字符串, 字符串是若干个字符的集合.

参数列表可以是多个参数, 我们的例子中只输入了一个参数age.

printf会解析"格式化字符串", 如果遇到%d这个标记, 就会在参数列表中选择一个变量或者常量将%d替换掉.

需要注意的是%d的意思是将一个值当做int型数据,替换到%d所在位置.

也就是说, 不同类型有不同的替换标记, 具体替换标记如下:

int %d或%i

char %c

float %f

double %lf

string %s string类型我们现在还没有学习,了解即可

那么'\n'到底是个什么东西? 其实'\n'也是是一个字符, 我们称之为控制字符.

它相当于换行.类似我们平时按一下回车键的作用,所以我们让printf输出一个'\n'他就能够换行了.

让我们来实际操作一下:

输出信息目前就学到这里, 接下来我们学习一下如何输入:

同样,输入也是使用函数实现的,这个函数叫做scanf

scanf的格式是这样的:scanf("格式化字符串", 参数列表);

是不是跟printf很像?

但有一点不同, scanf的格式化字符串是不会输出到控制台的.无论你输入什么语句.

我们先演示一个功能, 让程序接收我们的输入的数值, 然后再将它输出:

上面视频中有几个细节:

1,我们在scanf里的i前面添加了一个&

2,第一次运行会出现一个黑乎乎的窗口,没有任何提示

3,我们使用printf打印了一句话作为提示后, 再次编译运行提示一个错误

11,&我们称之为取地址符, 它的作用是获取后面的变量的地址, 我们知道内存就是可以存储数字的地方, 为了能够找到这个数字, 就要有一种方式去标记这个数字的位置, C语言中使用地址作为内存访问的位置标记.

在例子中,我们没必要知道i这个变量在内存中的具体地址是多少, 只要得到这个地址,传递给scanf即可.

22,可能大家听说过一句话"用户体验",虽然我们现在写的程序只是个黑乎乎的窗口,但是麻雀虽小,总要有五脏才算完整,加一句提示, 不费电!

33,这个错误的原因是printf函数后面忘记添加分号导致的, 这个错误很多人经常会犯的, 如果是第一次遇到可能就要挠头很久了.

同样, scanf也可以同时输入多个数据.

让我们把上面的演示换种写法吧!

大家可以实际运行一下.

我们同时声明了四个变量, 用一个scanf来输入这四个变量的值, 再用一个printf来输出他们得值.

可以看到scanf的格式化字符串%d,%c.....之间使用逗号隔开, 这就是分隔符,我们虽然输入在同一行, 但他会按照我们输入的逗号,对这一行进行分割,分别得到四个值. 大家可以尝试替换成其他分隔符来实际操作一下, 例如分号,空格等.

同时,scanf的参数列表中, 每个变量前面都添加了取地址符&.

参数列表的顺序也要和格式化字符串的书写顺序一致才可以, 否则可能会出现一些无法用目前的知识来解释的问题.

这一篇需要记住的几个知识点:

printf和scanf的使用方法,尤其是scanf中的取地址符&

不同数据类型的格式化标记,%d,%c,%f,%lf,%s

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G22KXK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券