——黑马程序员——C语言基础--printf函数和scanf函数
来源:互联网 发布:房卡麻将源码微信 编辑:程序博客网 时间:2024/06/05 08:29
-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
C语言基础--printf函数和scanf函数
一、printf函数
1、输出格式控制符
作用:数据的输出
格式:printf(格式控制字符符,输出项 列表)
输出项列表:程序输出的一些数据,可以是常量、变量或者表达式,多个变量或表达式时用逗号隔开
格式控制:由%和格式字符组成,说明将输出数据的类型、长度、标志、精度
%d:输出一个有符号的十进制整数类型
%md:设置域宽输出,m可以是正也可以为负,
输出的数的位数>m时,按实际输出宽度,反之补空格m>0,从左侧开始补空格m<0,从右侧开始补空格
%0md:表示不足部分补0,
%c:输出一个字符类型
%s:输出一个字符串类型
%f:输出实数(包括单、双精度、长双精度)以小数形式输出,单精度只能保证7位有效数字,能精确到小数点后6位,双精度只能保证15位有效数字,能精确到小数点后6位。
%m.nf:输出指定数据宽度和小数位数,m表示总宽度,n表示小数部分的宽度不足时自动补0
例如:单精度类型代码如下
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //定义浮点型变量并且赋值10 float a = 10.0; //打印出a/3的值 printf("%f\n",a/3); [pool drain]; return 0;}
结果为:3.333333
双精度代码为:
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //定义浮点型变量并且赋值10 double a = 10.0; //打印出a/3的值 printf("%f\n",a/3); [pool drain]; return 0;}
结果为:3.333333
如果把printf中%f改为%20.15f
结果为:3.3333333333333333 注意:第一个3之前有3个空格
%-m.nf:当输出的数据长度不超过m值时,输出的数据向左对齐,右端补上空格
%e:以指数形式输出实数
%e:以指定宽度的指数形式输出
%i:按十进制整型数据的实际长度输出,作用和%d格式符相同很少用
%o:以八进制整数输出整数
%x:以十六进制形式输出整数
%u:输出无符号型数据
%g:输出浮点数,系统自动选f格式或者e格式
%p:输出变量在内存中的地址(指针)
2、转义字符
\t:水平制表符,将当前位置移到下一个Tab位置
\n:换行,将当前位置移到下一个
\r:回车将当前位置移到本行开头
\\:一个反斜杠(\)输出 \
二、scanf函数(阻塞式函数—等待用户输入)
1、输入格式控制
scanf函数的原理:当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中然后,scanf函数会根据格式控制的字符和要求,从缓存区中依次取想要的内容。如果从缓存区中取得内容和格式控制符一致,则把值存放到变量中,如果不一致,则不修改变量的值。
作用:接收从键盘上输入的内容
格式:printf(格式控制字符串,输出 项的地址列表) 如:scanf("%d",&a);
输出 项的地址列表:可以是变量地址、字符串首地址、数组首地址等,多个地址用逗号隔开格式控制字符串和printf函数相同,不允许写%m.nf格式。
特点: (1)阻塞式函数,等待用户输入,用户需按照指定格式输入,如果用户不输入任何值,会一直等待下去直到输入
(2)在接收单个变量时,输入值之前、输入多个空格、回车、Tab都会被系统忽略
代码如下:
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //scanf 的注意事项 //定义变量 int a = 1; //从键盘接收数据 scanf("%d",&a); //打印出数据 printf("%d\n",a); [pool drain]; return 0;}
结果为:
(3)如果要获取的内容是多个整数,中间输入的多个空格、回车、Tab都会被系统忽略
代码如下:
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //scanf 的注意事项 //定义变量 int a = 1; int b = 1; //从键盘接收数据 scanf("%d%d",&a,&b); //打印出数据 printf("%d%d\n",a,b); [pool drain]; return 0;}
结果为:
(4)以混合格式输入时,如果以空格、Tab键、回车隔开输入,不会得到输入的值
代码如下:
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //scanf 的注意事项 //定义变量 int a = 1; char b; int c = 1; //从键盘接收数据 scanf("%d%c%d",&a,&b,&c); //打印出数据 printf("a = %d,b = %c d = %d\n",a,b,c); [pool drain]; return 0;}
为了防止以上这种情况可以在格式符之间加逗号
代码如下:
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //scanf 的注意事项 //定义变量 int a = 1; char b = 'a'; int c = 1; //从键盘接收数据 scanf("%d,%c,%d",&a,&b,&c); //打印出数据 printf("a = %d,b = %c d = %d\n",a,b,c); [pool drain]; return 0;}
结果为:
2、scanf函数的修饰符
关于*的使用
%*d:按照指定格式读入数据但不赋予相应的变量,作用是跳过相应的读入数据。
代码如下:
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //scanf 的注意事项 //定义变量 int a = 1; int b = 1; int c = 1; //从键盘接收数据 scanf("%d%*d%d",&a,&b,&c); //打印出数据 printf("a = %d,b = %d d = %d\n",a,b,c); [pool drain]; return 0;}
结果为:
0 0
- ——黑马程序员——C语言基础--printf函数和scanf函数
- 黑马程序员———C语言 printf函数和scanf函数
- 黑马程序员——c语言学习---printf和scanf函数
- 黑马程序员——C语言基础语法(关键字、标识符、注释符、变量、作用域、printf函数、Scanf函数)
- 黑马程序员—输出函数printf和出入函数scanf
- 黑马程序员——c语言基础:scanf函数
- 黑马程序员——C语言基础知识整理——printf函数与scanf函数
- 黑马程序员——变量、printf函数、scanf函数
- 黑马程序员——数据类型、printf函数与scanf函数
- C——printf和scanf函数
- 黑马程序员——C语言中的scanf函数
- 黑马程序员——C语言基础-进制内存分析及printf、scanf
- 黑马程序员——C语言基础语法--scanf函数、基本运算、流程控制
- 黑马程序员——c语言基础语法,变量的内存分析,scanf函数
- 黑马程序员——C语言中的printf函数
- 黑马程序员—c语言基础—Printf函数的介绍以及注意事项
- 黑马程序员——C语言基础——用printf函数、数组和循环结构输出特殊图形
- C语言基础—scanf函数
- github命令大全
- php反射例子
- Linux下面给用户添加sudo权限
- 升级mac 系统 10.11之后cocoapods出现问题
- UFT使用VBS关闭已打开的应用程序process
- ——黑马程序员——C语言基础--printf函数和scanf函数
- Android五大布局方式——相对布局(RelativeLayout)属性详解
- linux命令
- XMPP客户端库Smack 4.1.4版官方开发文档之二
- GraphLab初学小感想
- 九度OJ 1159:坠落的蚂蚁 (模拟、排序)
- Windows一键优化与美化原码
- A + B Problem II
- PhpMyAdmin导入数据时提示文件大小超出PHP限制的解决方法