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 ...
随机推荐
- C语言结构体的内存对齐问题
在C语言开发当中会遇到这样的情况: #include <stdio.h> struct test { int a; char b; }; int main(int argc, const ...
- 【v2.x OGE教程 20】粒子效果
1.介绍 粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术.而这些现象用其他传统的渲染技术难以实现的真实感的 game physics.常常使用粒子系统模拟的现象有火.爆炸.烟.水流.火花. ...
- Java有用经验总结--Swing篇
Java有用经验总结--Swing篇 前言 本文前言部分为我的一些感想,假设你仅仅对本文介绍的Java有用技巧感兴趣,能够跳过前言直接看正文的内容. 本文的写作动机来源于近期接给人家帮忙写的一个小程序 ...
- stagefright框架(七)-Audio和Video的同步
讲完了audio和video的处理流程,接下来要看的是audio和video同步化(synchronization)的问题.OpenCORE的做法是设置一个主clock,而audio和video就分别 ...
- C# ?? 操作符示例
static int? GetNullableInt() { return null; } static string GetStringValue() { return null; } static ...
- JQ 事件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 初始AngularJS
<!-- AngularJS 通过 ng-directives 扩展了 HTML. ng-app 指令定义一个 AngularJS 应用程序. ng-model 指令把元素值(比如输入域的值)绑 ...
- 一段phpcurl代码
$header[] = 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-fl ...
- js 异步流程控制之 avQ(avril.queue)
废话前言 写了多年的js,遇到过最蛋疼的事情莫过于callback hell, 相信大家也感同身受. 业界许多大大也为此提出了很多不错的解决方案,我所了解的主要有: 朴灵 event proxy, 简 ...
- webview相关链接
http://tech.it168.com/a2011/0517/1191/000001191561_2.shtml http://www.eoeandroid.com/thread-272495-1 ...