408考研 混合运算-scanf读取标准输入原理总结

【注】:C语言注重计算机原理解析,多写程序

目的:字符串常量的混合运算与scanf熟练使用

一、环境使用

1、vs中每个项目编译后都是一个exe可执行程序(Windows程序),每次只能启动一个,要设置为启动项目(粗体)

2、在源文件处新建代码

3、单步调试

快捷键F11,可以逐步运行,也可以在断点调试下接单步。

F10是逐过程调试,不进入函数模块

调试的意义在于检查每一步是否按照预期来进行运行

二、大小写转换

 408考研 混合运算-scanf读取标准输入原理总结

三、字符串常量

C语言通过字符数组来存储字符串,没有String类型

用“ ”引起来,‘’是字符型常量

“CHINA"在内存中的存储占据的是6个内存单元,最后一个字符为’\0‘,只是在输出时不显示。

将它赋值给字符数组时要注意是6个内存单元

四、混合运算

4.1 类型强制转换

408考研 混合运算-scanf读取标准输入原理总结

 

4.1.1 未进行强制类型

在C语言中,除号“/”的数据类型是由除数和被除数决定的。

408考研 混合运算-scanf读取标准输入原理总结

 

4.1.2 进行强制类型转换

要想转换为对应类型就需要运用强制类型转换符:(类型)。把这个表达式的类型转换,不是把字符转换。

五、常用的数据输入/输出函数

C语言通过函数库读取标准输入(scanf),操作系统提供;

printf输出到控制台(标准输出)。

5.1 scanf函数

int scanf (count char *format,....);

format 是一个字符,“...."是可变参数;

%d 一个十进制数

%f 一个浮点型

%c 一个单一字符(在读取这三个类型时会忽略回车,空格)

①format的类型一定要与后面的数据类型互相对应:“%d%d%d”,&a,&b,&c;

②用scanf之前需要加一个宏 #define _CRT_SECURE_NO_WARNINGS(Windows系统)

③scanf是行缓冲,在缓冲区都是一个一个的字符,输入“\n"之后就会触发I/O操作。

注:缓冲区为空时将会阻塞

标准输入缓冲区在scanf匹配时只把相应类型匹配,而回车存在在缓冲区,所以接着读取时将不会阻塞,接着运行。

408考研 混合运算-scanf读取标准输入原理总结

 

5.1 缓冲区证明

5.2 scanf输入两个整数

在scanf中输入一定要一一对应,除非在(整形,浮点型,字符型)这三种类型时,空格可有也可以没有,这正是缓冲区理论。

408考研 混合运算-scanf读取标准输入原理总结

 

上一篇:[WUSTCTF2020]朴实无华


下一篇:不要怂,就是干