scanf与printf用法详解
| 格式码\限定符 | h | l | L |
| d,i,n | short | long | |
| o,u,x | unsigned short | unsigned long | |
| e,f,g | double | long double |
| 代码 | 对应的指针参数类型 | 含义 |
| c | char * | 读取和存储单个字符,前导的空白字符不跳过(可以在格式字符串中加入空格来跳过)。若给出宽度,就读取和存储这个数目的字符,后面不会添加NUL,必须保证足够大的数组空间 |
| i d |
int * | 有符号整数被转换。%d解释为十进制。%i根据第一个字符决定值的基数,和整型字符值常量的表示形式相同。10,034,0xa2 |
| u o x |
unsigned * | 无符号整数被转换。u:十进制;o:八进制;x:十六进制 |
| e f g |
float * | 期待一个浮点值。他的形式必须像一个浮点型字面值常量,但小数点并不必须 |
| s | char * | 读取一串非空白字符,当发现空白时则输入停止。后面自动加上NUL。必须保证足够大的数组空间 |
| n | int * | 处理字符的个数 |
fgets(buf,20,stdin);
char *p = strrchr(buf,'\n');
*p = '\0'; //去除回车符
if(sscanf(buf,"%d%d%d",&a,&b,&c) != 3)
{
a = 1; //defalut value of a
if(sscanf(buf,"%d%d",&b,&c) != 2)
{
b = 1; //default value of b
if(sscanf(buf,"%d",&c)!=1)
{
printf("input error\n ");
exit(1);
}
}
}
printf("a = %d\nb=%d\nc=%d\n",a,b,c);
| 标志 | 含义 |
| - | 左对齐;默认右对齐 |
| 0 | 右对齐时,用0填充左边未使用的列;默认用空格填充 |
| + | 当一个数为正数时,前面加上一个+号,默认不显示 |
| 空格 | 当一个数为正数时,前面加上一个空格,默认不显示 |
| 修改符 | 作用对象 | 表示类型 |
| h | d,i,o,u,x | short型整数 |
| l | d,i,o,u,x | long型整数 |
| l | e,f,g | long double型数据 |
| 代码 | 参数 | 含义 |
| c | int | 参数被裁剪为unsigned char类型并作为字符打印 |
| d i |
int | 作为一个十进制整数打印 |
| o u x |
unsigned int | 参数作为一个无符号值打印,u使用十进制,o使用八进制,x使用十六进制 |
| e、f、g | double | 参数按照浮点数打印,精度缺少为6位 |
| s | char * | 打印一个字符串 |
| n | int * | 打印字符的个数 |
int main()
{
float a = 3.14;
double b;
sscanf("3.42","%lf",&b); //将字符串转换为数值double
sprintf(buf,"%.2f",a); //将double型数值转换为字符串
printf("b = %.2f\n",b);
printf("buf is:%s\n",buf);
}
data = 12345;
char buf[20];
sprintf(buf,"%d%n",data,&number); //利用snprintf防止访问内存越界:snprintf(buf,20,"%d%n",data,&number);
printf("data is %d,has %d characters\n",data,number);
scanf与printf用法详解的更多相关文章
- C语言printf用法详解
#include <stdio.h> int main() { printf("%s","hello world1!\n");//%s字符标志可省略 ...
- golang格式化输出-fmt包用法详解
golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org 声明: 此片文章并非原创,大多数内容都是来自:https:// ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- ZT --- extern "C"用法详解 2010-08-21 19:14:12
extern "C"用法详解 2010-08-21 19:14:12 分类: C/C++ 1.前言: 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus ...
- 【转】 #define用法详解
#define用法详解 1.#define 的作用 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”.被定义为“宏”的标识符称为“宏名”.在编译预处理时,对程序中所有出现的“宏 ...
- JS逗号运算符的用法详解
逗号运算符的用法详解 注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScri ...
- C语言 sscanf用法详解
/* sscanf用法详解 */ #include <stdio.h> /* sscanf头文件 */ #include <stdlib.h> #include <str ...
- C语言对文件的操作函数用法详解2
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- memset用法详解
原文:http://www.cnblogs.com/PegasusWang/archive/2013/01/20/2868824.html 1.void *memset(void *s,int c,s ...
随机推荐
- Volist标签 key值的使用
Volist标签是thinkphp框架view中常用到的一个标签.主要用于在模板中循环输出数据集或者多维数组.今天使用key属性时出了点问题,记录一下. volist标签(循环输出数据) 闭合 非闭合 ...
- 监控父元素里面子元素内容变化 DOMSubtreeModified
1监控ul的li的变化情况,并实时输出li的长度 布局: <ul id="isSelected"></ul> <span id="modal ...
- 带你走近AngularJS - 创建自己定义指令
带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自己定义指令 ------------ ...
- poj2503--Babelfish(特里一水)
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 32988 Accepted: 14189 Descr ...
- 从一段代码看fork()函数及其引发的竞争
首先来看一段从<UNIX环境高级编程>中摘录的一段很有意思的代码.借此我们再来谈谈fork()函数的一些问题. #include "apue.h" static voi ...
- java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast ...
- eclipse美化,全黑eclipse 保护眼睛
如标题,闲话不多说.有图说明一切.看看这是你想要的嘛? 教程及资源下载地址: http://download.csdn.net/detail/shoneworn/8326097
- ASP.NET属性之AssociatedControlID
AssociatedControlID 是用在Asp.Net 中的 Label 控件上.给label控件关联一个ASP.NET的控件,在点击 这个 LABEL的时候,所关联的ASP.NET控件会获得焦 ...
- oracle 数据库学习
1.更改数据库用户名密码: alter user '用户名' identified by ’password'. 2.查看数据库有哪些用户:sqlplus system/password ;selec ...
- Populating Next Right Pointers in Each Node,Populating Next Right Pointers in Each Node II
Populating Next Right Pointers in Each Node Total Accepted: 72323 Total Submissions: 199207 Difficul ...