C语言第三天
来源:互联网 发布:淘宝售后的服务流程 编辑:程序博客网 时间:2024/05/01 19:16
今天是好几天后来看了,复习了下之前看过的内容。准备接下来的事儿了。开学了。我毕业了。
C语言的输入输出语句
Scanf和printf 这俩个函数分别称为格式输入函数和格式输出函数,其意义是按指定的个数输出输出值。
因此,这两个函数在括号中的参数都由以下两部分组成:
1)格式字符串是一个字符串,必须用双引号括起来,它表示输入输出的数据类型。
在printf 函数中可以在格式控制串内出现非格式控制符,这时会显示源字符串。
但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。
printf函数调用的一般形式为:
printf("格式字符串",输出列表);
其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位。如下:
“%d” 表示按十进制整型输出;
“%ld” 表示按十进制长整型输出;
“%c” 表示按字符型输出等;
非格式字符串原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。
格式字符串
格式字符串的一般形式:
[标志][输出最小宽度][.精度][长度]类型。 其中方括号中的项为可选项。
1> 类型
类型字符用以表示输出数据的类型,其格式符和意义如下:
格式字符意义d以十进制形式输出带符号整数O以八进制形式输出无符号整数(不输出前缀O)x,X以十六进制形式输出无符号整数(不输出前缀OX)u以十进制形式输出无符号数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串2>标志
标志字符为—、+、#和空格四种,其意义下表所示:
标志意义—结果左对齐,右边填空格+输出符号(正号或者负号)空格输出值为正时冠以空格,为负时用负号
#对c、s、du类无影响
对o类,在输出时加前缀o
对x类,在输出时加前缀Ox
对e、g、f类当结果又小数时才给出小数点
3> 输出最小宽度
用十进制整数来表示输出的最少位数。若实际位数多于定于的宽度,则按实际位数输出,若实际位数少于定义的宽度则
补以空格或0.、
4> 精度
精度格式符以“ . ”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出
的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
5> 长度
长度格式符为 h 、 l 两种, h 表示按短整型量输出,l 表示按长整型量输出。
- #include <stdio.h>
- int main(void){
- int a=15;
- long float b=123.1234567;
- // 原来b的定义为 float b=123.1234567;
- // 经读者@邓小良反馈,笔者发现会溢出,在前面加了long
- double c=12345678.1234567;
- char d='p';
- printf("a=%d\n", a);
- printf("a(%%d)=%d, a(%%5d)=%5d, a(%%o)=%o, a(%%x)=%x\n\n",a,a,a,a); // %% 可以输出 %
- printf("a=%f\n", b);
- printf("b(%%f)=%f, b(%%lf)=%lf, b(%%5.4lf)=%5.4lf, b(%%e)=%e\n\n",b,b,b,b);
- printf("c=%f\n", c);
- printf("c(%%lf)=%lf, c(%%f)=%f, c(%%8.4lf)=%8.4lf\n\n",c,c,c);
- printf("d=%c\n", d);
- printf("d(%%c)=%c, d(%%8c)=%8c\n",d,d);
- return 0;
- }
- 第11行以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。
- 第14行以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。
- 第17行输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。
- 第20行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。
输入语句(scanf):
头文件: #include<stdio.h>
Scanf() 函数用来和格式化输入数据,即按照用户指定的格式从键盘上把数据读入到指定的变量中,其原型为:
int scanf(char*format[,argument,....]);
【参数】 format为格式化控制字符,可以由三类字符组成。
1>格式化说明符
%a 读入一个浮点值(仅C99有效)
%A 同上
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x 读入十六进制整数
%X 同上
%c 读入一个字符
%s 读入一个字符串
%f 读入一个浮点数
%F 同上
%e 同上
%E 同上
%g 同上
%G 同上
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
另外还有附加格式说明符,用于追加在上面的格式说明符后面
L / l 长度修饰符 长数据
h 短数据
W 整型常数
* 星号 空读一个数据
hh 同h 但是仅仅对C99有效
ll 同l 但是仅仅对C99有效
2> 空白字符
空白字符会使scanf() 函数在读操作中略去输入中的一个或多个空白字符,空白符可以是: space、tab、 newline. 直到
第一个非空白字符出现为止
3> 非空白字符
一个非空白字符会使scanf() 函数在读入时剔除掉与这个非空白字符相同的字符
。
argument 为需要读入的所有变量的地址, 而不是变量的标识符
注意: 是变量地址 不是变量标识符
如果是一般的变量,通常要在变量名前加上“&” 取得地址,但输出时是用变量名;
如果是数组,用数组名就代表了该数组的首地址,输出时也是用数组名
如果是指针, 直接用指针名本身,不要加上“ * ”星号, 输出时也用该指针即可。
- C语言第三天
- C语言第三天
- C语言第三天
- C语言的第三天
- C语言学习第三天
- 标准C语言第三天
- C语言之第三天目标
- C语言暑期实习 第三天
- c语言学习第三天(指针)
- C语言学习第三天结构体
- C语言学习第三天(练习)
- 学习C语言的第三天
- 学习C语言的第三天
- JNI学习之C语言第三天
- C语言学习的第三天
- go语言第三天
- 21天学通C语言第三天---存储类型
- C语言学习第三天(位操作)
- Android日志收集上报功能设计与实现(总)
- 【OC学习-22】协议和代理双剑合璧——中介找房的代理模式
- No.2 -->包装类的简单介绍及包装类的应用
- 粗浅谈论makefile
- MySQLWorkbench报Error Code 1175
- C语言第三天
- 噶发的萨芬撒分撒
- AST解释执行
- 低版本手机浏览器不支持position: fixed的解决方法
- Linux常用命令(2):vi
- 栈虚拟机字节码
- java学习篇(四)---浅谈JUnit 3.8
- ios AES128加密解密算法
- ProtelDXP高级功能