在宏大的叙事中,个人的意义将会被无限缩小,那是与现在社会上盛行的个人主义截然相反的描述。印象中不是那年代总有把自己比作螺丝钉,服务人民,之类的,我也无法描述详尽,那是这个社会的过去,奇怪的是那时候的人们过的虽然苦,幸福感却是不低的。回不去的过去,为什么人们总是会仰望过去,却是永远回不去的过去,抛开任何的形态对立和政见,放弃任何目的的怀念过去,那便是真的有人们珍贵的东西在现在所丢失了,人们失去了灵魂的一部分。当前人们最为缺失的就是责任感,需要真正的看看,品尽人间百态,也许我们可以去旅行,但是我们的心还是被困在狭小的空间中,现在有不少这样的人,各种社会公知横行,真假难辨,我是不屑于跟那种人多接触吧,我称那种人为————高级人机,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才能正确识别用户输入的内容
红色字体------查阅信息 紫色字体-------个人理解 黄色字体-------需要注意的部分
!>=<