C语言中的数据类型与变量(补充)3

在宏大的叙事中,个人的意义将会被无限缩小,那是与现在社会上盛行的个人主义截然相反的描述。印象中不是那年代总有把自己比作螺丝钉,服务人民,之类的,我也无法描述详尽,那是这个社会的过去,奇怪的是那时候的人们过的虽然苦,幸福感却是不低的。回不去的过去,为什么人们总是会仰望过去,却是永远回不去的过去,抛开任何的形态对立和政见,放弃任何目的的怀念过去,那便是真的有人们珍贵的东西在现在所丢失了,人们失去了灵魂的一部分。当前人们最为缺失的就是责任感,需要真正的看看,品尽人间百态,也许我们可以去旅行,但是我们的心还是被困在狭小的空间中,现在有不少这样的人,各种社会公知横行,真假难辨,我是不屑于跟那种人多接触吧,我称那种人为————高级人机,1、没有自己的想法   2、盲从成为习惯  3、 更像个大喇叭而深交无益

我更喜欢有趣的灵魂,你呢

9、scanf和printf

首先需要知道的是只要是使用到printf和scanf,头文件#include <stdio.h>都是必须加的

这两位大概是C语言中最常用的部分,就像互相认识时总是会以名字介绍开头。重要所以单开了这一篇,数字9意味着紧接着上一篇,几句话能说明白。是这样

(1)、printf

printf可以将放置在它之中的信息打印在屏幕上,当然它包括的可以有很多,可以时直接的用键盘输入字符串,前面加上指定数据类型的,后面输出的数据,只要是包含其中的都可以输出

1> printf其中的占位符

占位符,指定其后的格式,并且最后这个符号会被后面的数据顶替

#include <stdio.h>
int main()
{
        printf("this is %s banana",my);   //其中的参数my顶替了%s的位置,%s既指定了格式,又占了位置




    return 0; 
}

有意思的一点是 printf中的占位符和参数是一一对应的关系,而参数却总是比占位符多一个,如果有n个占位符,那么参数该有n+1个,要是参数个数小于占位符,printf可能输出任意值

常见占位符:

%c                        字符型,对应char

%d                        十进制整数,对应int

%f                        小数,对应float类型和double类型     float   //   %f       double   //    %lf

%s                        字符串

之后可能还会用到的,用到的时候再提,也可以自行去查

2>输出格式

        1>>限定宽度

        printf能限定占位符的最小宽度

目前的这填充是从左边开始,也就是整个数据遵循着右对齐的方式,如果想改变为左对齐,要这样做

通俗些说就是把d的前面的数字加上负号

特殊情况

对于小数应用该种方法还有些不一样的地方

小数的话默认都是要把小数点后的后六位显示出来的,这一次的要求是

小数点也算一位,右对齐,                                          结果就是上图的左边补3位

同样改变对齐方式的办法是加负号

        2>>限定小数位数

        输出小数时想限定小数点后的位数,如限定3位,占位符写成这样----------%.3f

想保留其它小数点后位数同理,自己可以去试试,你就懂得差不多了

特殊注意:还有一种用法,结合之前的,咱把它改成个%x.xf,这又代表着什么?

我们知道整数部分分两种情况,我们这里就讨论不加负号的情况,那就是

右对齐,

打印够x位,

不够的从该数据的前方补充空格。

那么小数部分呢?

指的是最后该保留小数点后几位。

这样见得多了就能看见就懂了,实际操作下来是这样,对着看,我用的例子是%6.3f

(2)、scanf

首先来解决问题,在我们开始使用scanf时,我用的是VS2022,会报错,指出scanf的危险,并推荐使用scanf_s ,这涉及到了编译器的问题,由于scanf_s是由VS自己定义的,鉴于在不用编译器中的通用性,我们推荐使用scanf,而且就算要用scanf_s 完全替换掉scanf,两者的用法也不完全相同,那么要怎么解决掉问题呢?

会出现以下报错以下的是关键

把这句话加在将会使用scanf的工程一开头,必须是一开头,

#define _CRT_SECURE_NO_WARNINGS   

(直接粘贴我的就行,中间自己打免不了有格式错误的地方)

1>基本用法

scanf函数会读取用户从键盘输入的内容,程序调试执行时碰到scanf函数就会暂时停止,等待用户从键盘输入内容,按下回车后继续运行并将数据存入变量

当然,scanf和printf的使用都要包含一个头文件--------#include <stdio.h>使用,头文件应该在主函数之前写出

scanf("%d",&h);

scanf中第一个参数告诉编译器用户输入的是何种类型的数据,例如这里的%d指的就是要输入的是整数类型的数据,做为占位符之后的&h,&h意思是将用户输入存储到变量h中(这个字母可以是任何东西,它也可以不是h,或者是除它之外的任何字母之类的)

注意,这里的&是必须的,其后的数据是可变的,&会引导编译器去找到存于其后变量中用户键盘输入数据的地址

scanf()中占位符的多少决定着后面用户输入数据的量的多少,以下是演示多个变量的输入,对应多个占位符

加空格是为了让编译器不会把数字串到一块,简单说就是这样,不会把1,2看成12

值得注意的是,scanf处理用户输入的数据时,会从上次解读剩下的第一个字符开始,知道读完缓存(用户输入的内容),或者读到第一个不符合条件的字符为止,如下

#include <stdio.h>
int main()
{
    int x;
    float y;
                //用户输入3.14
    scanf("%d",&x);
    printf("%d\n",x);
    scanf("%f",&y);
    printf("%f\n",y);

return 0;
}

用户输入的是3.14,有两个变量需要获取用户数据,一个定义为整数,一个定义为小数,按照上述规则,

x取到3,后面碰到了小数点,编译器不认为接下来的还是整数,读到3停止

y继续在3的后面取到     .14      ,由于小数默认打印后六位,最终结果读取为0.140000

注意点,格式多样化不能枚举,只需要记住这样一句话,后续从用户输入的格式,务必要与格式串内指定的格式相同,这样scanf才能正确识别用户输入的内容

红色字体------查阅信息    紫色字体-------个人理解   黄色字体-------需要注意的部分

!>=<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值