嵌入式学习

#C语言基础

#今天学习了输入输出函数(printf、scanf)、流程控制——选择结构(if语句)


#输入输出函数

#printf()函数

printf()函数为格式化输入输出函数,其函数原型为:int printf(const char *format,...);调用方法为:printf("格式化控制字符串",输出参数列表)。

格式化字符串中分为普通字符和占位符,其中普通字符原样输出;

占位符用参数列表中的数值替换:输出整型数据的占位符有%d(转换为有符号十进制数输出)、%u(转换为无符号十进制数输出)、%x(转换为十六进制输出)、%o(转换为八进制输出);输出浮点型数据的占位符有%f(转换为小数形式输出,默认保留6位小数)、%e(以科学计数法的形式输出)、%g(以更简洁的形式输出,不将多余的0输出);输出字符型数据的占位符有%c(转换为数值对应的字符输出)、%s(输出字符串)。

在占位符中可以加辅助控制字符,控制输出的样式:1、# ,%#x可以将十六进制的前缀0x输出;%#o可以将八进制的前缀0输出。 2、m,可以控制输出数据的宽度,m <实际数据宽度时------输出实际的数据宽度,m>实际数据宽度------输出m宽度的数据,默认右对齐,前面补空格,0m则为补0,-m 转为左对齐,此时不能补0。 3、 .n ,%nf 表示结果中保留n位小数,%.ng 表示保留结果中n位数字,%.ns 表示保留前n个字符。4、%ld 表示匹配 long int 类型数据,  %lld 表示匹配 long long int 类型数据,  %hd 表示输出一半,%lf 匹配double类型数据,%Lf 匹配long double类型数据。特别注意:占位符与参数一一对应,参数个数多于占位符,编译报警,不影响输出结果,参数个数少于占位符,编译报警,多的占位符对应输出结果为随机值。  

#scanf()函数

scanf()函数原型为int scanf(const char *format, ...);scanf的格式为:scanf("格式控制字符串",地址列表);格式控制字符串同样分为普通字符和占位符,普通字符要求原样输入,占位符将键盘输入的数据转换为占位符指定的格式,整型数据的输入有:%d   -- 转换为 有符号 十进制形式 输出 ,%u   -- 转换为 无符号 十进制形式 输出,%x   -- 转换为 十六进制形式 输出,%X   -- 转换为 十六进制形式 输出 输出结果中字符 都是大写形式 ,%o   -- 转换为 八进制形式 输出;浮点型数据的输入有: %f   -- 转换为 小数形式输出,默认保留 6位 小数,%e   -- 转换为 科学计数法形式 输出,指数部分 会显示 正负号 如果是一位数 则会补个0,%g   -- 以一种 更简洁的方式输出 ,不会将多余0输出 ;字符型数据的输入有:%c   -- 转换为 数值 对应 字符形式 输出  --- 键盘输入的 都可以被当作字符 %c 都能识别,%s   -- 以字符串的形式(一串字符)输出。辅助控制符: m 指定输入宽度 ,注意:浮点数中 小数点 也算一列宽度;输入时,不能指定输入数据的精度 ;%lf 表示 给doule类型变量中输入数据 , %f  表示给float类型的变量中输入数据 ,%Lf  表示给 long double 类型变量中输入数据。scanf读取字符结束的条件遇到空白符(空格、回车、Tab)、遇到非法字符、到达指定的输入宽度。

#流程控制——选择结构(if语句)

判断条件的产生:运用关系运算符和关系表达式。C语言中用1(真) 0(假)来反映关系是否成立。

逻辑与运算:&& 一假则假 具有截断特性

逻辑或运算: | |   一真则真 也具有截断特性

逻辑非运算:! 真假相对

if语句的格式为:if (表达式)

                           {

                           语句;

                             }

表达式为真,则执行语句,为假表示if语句结束程序向下执行

                         if(表达式)

                         {

                          语句1 

                          }else

                          {

                            语句2;

                           }

表达式为真执行语句1,为假执行语句2。

你可能感兴趣的:(linux,c语言,vim)