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 ...
随机推荐
- UILocalNotification
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- jar包和war包的区别:
jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性了,这些jar包一般都会放在lib目录下. war是一个web模 ...
- 图解MapReduceMapReduce整体流程图
1.图解MapReduceMapReduce整体流程图 并行读取文本中的内容,然后进行MapReduce操作 Map过程:并行读取三行,对读取的单词进行map操作,每个词都以<key,value ...
- javascript 控制input
1.只允许输入数字 <input name="username" type="text" onkeyup="value=this.val ...
- hdu2952Counting Sheep
Problem Description A while ago I had trouble sleeping. I used to lie awake, staring at the ceiling, ...
- javascript 高级程序设计学习笔记(面向对象的程序设计)继承
ECMAScript中描述了原型链的概念,原型链是实现继承的主要方法. 实现原型链继承有一种基本模式 function SuperType () { this.property = true; } S ...
- commands - `ls`
list only directories: ls -d /path/to/*/
- (转+原)android获取系统时间
参考的网站如下: http://c.biancheng.net/cpp/html/144.html http://www.linuxidc.com/Linux/2012-03/55909.htm 代码 ...
- twisted 使用
工欲善其事,必先利其器,我们先来进行 twisted 框架的安装,由于平时使用的都是 Windows 系统,那么下面我们就讲解下 Windows 下 twisted 框架的安装(1)下载 twiste ...
- shell基础——字符串连接
#!/bin/sh str1="hello" str2="world" echo str1=$str1, str2=$str2 strconn1=$str1$s ...