C语言入门(4):命名,输入(scanf)和打印(printf)

目录

前情回顾

1.定义(命名)

2.输入

3.打印


前情回顾

上一期博客,我们学习了如何写一个最简单的C程序代码——hello world,这一期我们来讲一讲在C语言程序中最简单的两个功能:输入和打印,我们初学者能用什么方式来实现,以及我们能够通过这两个功能实现什么。


1.定义(命名)

当我们开始写代码的时候,正如我之前的博客所说的,现在摆在我们面前就是一间空房间。当你想要往空房间里面放东西的时候,首先重要的是把这个东西命名,不然一堆未命名的数据放着一起,你根本无法认出你需要的到底是哪一个。

命名也是有格式的,当你想要命名一个数据的时候,你首先得告诉我这个数据是什么类型的。

内置的数据类型有:字符型,整型,浮点型和布尔类型。


字符型:顾名思义,用于存放字符的数据类型

整型:用于存放整数

浮点型:用于存放小数

布尔类型:用于判断是否正确


当你想要存放一个小数的时候,你就需要使用float(浮点数)来存放,如果你想用int(整型)来存放的时候,那么就会出现差错,强行转换,会使得你想要存放的数据丢失精度,失去它的小数部分;就像是你把一个正方形拼图强行放进圆形缺口一样。

命名的正确格式是 (数据类型) (数据)可能我这么说有点抽象,接下来我举几个例子。当你想要命名一个1的数据的时候,你首先需要将他放进int(整型)的数据类型当中,然后给他一个名字。如下;

int a=1;

可以看到,在这里我就将一个“1”的数据命名为了a,是以整型的形式存放的,接下来我们想要调用的时候直接可以用“a”这个字符来指代。

当然很多时候我们需要一个空白的数据,这个时候我们可以先定义命名,但是并不赋予其数据,如:int a;

目前我们初学者常用的两种类型便是float(浮点数)和int(整型)

命名是C语言中的基础,在接下来的输入和打印的学习中我们会经常遇到。

2.输入

在我们尚未接触代码的时候,我们对于程序最初的印象应该来源于平时生活中手机上,电脑上使用的五花八门的APP,这些APP曾经给我们带来过无穷的乐趣,也是我们对C语言感兴趣的启蒙班。现在让我们仔细回想为什么这些APP能够消磨我们那么多时间。

如果APP光有丰富的内容,那他充其量是一本厚一点的书,正是因为随着我们不同的输入,APP反馈出来不同的反应,才使得这些APP如此让人沉迷。所以输入也是C语言程序中不可缺少的一部分。

输入有很多种方式,C语言中我们初学者一般常用的是scanf函数。scan代表输入,而f代表着form(格式);接下来我来讲解一下,scanf函数的格式和功能。

scanf("%d",&a);

类似上面所写的便是scanf函数使用时候的样子。

scanf函数的基本写法是scanf(“格式控制字符串”,输入参数列表)。它运行的时候可以从你的键盘获取输入,也就是所谓的标准输入。

接下来我来解释一下上面每一个符号代表着什么

%d是一个整型占位符,这里我先介绍一下占位符的概念,所谓 “占位符”,就是这个位置可以⽤其他值代⼊。

打个比方,我在这里放一个占位符就像是我现在宣称这里是一个数据,无论是将这个数据赋值还是调用这个数据,反正这里都要用到后面的数据。

占位符和后面的数据,属于是一个萝卜一个坑,每个占位符后面都要对应有一个数据,而且对应是按先后顺序来的,比如下面:

scanf("%d %d",a,b);

第一个%d对应的就是后面的a,第二个%d对应的就是后面的b。

当然,我们数据是有类型的,占位符当然也是如出一辙

也有与其对应的类型:


%a :⼗六进制浮点数,字⺟输出为⼩写。
%A :⼗六进制浮点数,字⺟输出为⼤写。
%c :字符。
%d :⼗进制整数。// int
%e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
%E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
%i :整数,基本等同于 %d
%f :⼩数
%g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e
为⼩写。
%G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
%hd :⼗进制 short int 类型。
%ho :⼋进制 short int 类型。
%hx :⼗六进制 short int 类型。
%hu :unsigned short int 类型。
%ld :⼗进制 long int 类型。
%lo :⼋进制 long int 类型。
%lx :⼗六进制 long int 类型。
%lu :unsigned long int 类型。
%lld :⼗进制 long long int 类型。
%llo :⼋进制 long long int 类型。
%llx :⼗六进制 long long int 类型。
%llu :unsigned long long int 类型。
%Le :科学计数法表⽰的 long double 类型浮点数。
%Lf :long double 类型浮点数。
%n :已输出的字符串数量。
该占位符本⾝不输出,只将值存储在指定变量之中。
%o :⼋进制整数。
%p :指针(⽤来打印地址)。
%s :字符串。
%u :⽆符号整数(unsigned int)。
%x :⼗六进制整数。
%zd size_t 类型。
%% :输出⼀个百分号。

在上面的学习中我们知道,我们可以先命名一个数据但是并不赋值,像我们刚刚就命名了一个整型“a”。

那么&a代表的就是我要将前面这个占位符所获取到的数值赋值到“a”这个变量当中。

当然很多时候,我们使用scanf函数更需要的是注意输入格式

scanf("%d %d",a,b);

就像是这里,当我们运行程序的时候,就需要按照“(数据)(空格)(数据)”的格式输入,不然容易丢失数据。

再举个例子:

scanf("%d-%d-%d",&a,&b,&c);

类似这种常用的输入年月日的格式,我们输入的时候也得仿照“(数据)-(数据)-(数据)”的格式输入。

ps:注意如果你用的是英文符号,那么输入的时候也必须用英文符号。不然也可能导致数据丢失等情况。

3.打印

打印是很常用的输出的手段之一,如果是我们初学者的话,基本上printf函数是我们绕不开的学习内容。

C语言入门(3):我的第一个C语言程序中我们就用到了printf函数,和scanf函数类似,printf函数也由print(打印)f(form格式)组成。

而且格式也相近,printf的基本格式是printf(“打印内容”,输入参数列表)。当你想要引用数据的时候,同样也需要一个占位符,但是不同之处在于,后面的数据名前面不需要“&”了。

具体如下:

printf("我想要%d个粉丝",a);

像这行代码,实现的效果就是打印——我想要(a的数据)个粉丝。值得一提的是,当你只是想要单纯打印一行文字的时候,后面的“,a”是可以省略的。

举个例子,我现在有68个粉丝

printf("我现在有68个粉丝");

这时候,既然我不引用,那么后面的数据自然也不是必要的。

把我们今天学习的内容总结一下,你就可以得到一个将你输入的数据打印出来的简单程序。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
   int a;
   printf("请输入一个数字");
   scanf("%d",&a);
   printf("你输入了%d",a);
   return 0;
}

大家可以看到我在这里多加了一行申明,其实是因为scanf如果你直接运行的话会有警告,所以你得先申明我无视警告,继续访问,不然你直接运行的话,scanf函数的返回值会被忽略;也就是无法将你输入的值赋值到变量当中。

那么到这里,我们基本上已经清楚scanf和printf的使用方式和功能。这期博客也进入尾声。

我是嘉峪关的苏洵,一个致力于将自己学习C语言程序心得分享给更多人的程序小白,感谢大家看到这里,我们下一期博客再见,在下一期博客当中,我会详细介绍C语言当中更多常用的函数,如果感兴趣的话可以点点关注,让我们一起学习C语言。


然而我这灵魂是一把火,

不烧起来的话会难过。

——司汤达


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值