用好printf和scanf
转载自:http://hi.baidu.com/wuxicn/item/f648fe1970f86917e3f98682
在C中,printf系列函数(fprintf, sprintf...)和scanf(fscanf, sscanf...)函数功能很强大,用好了的话,很多字符操作都可以很简单,甚至一些简单的正则匹配的工作也可以用scanf来完成,下面是几个例子。
1. printf:
a) 前导“0”:printf("%05d", n); // n=10, print:
 "00010"
b) 左对齐:printf("%-5d|%5d",
 n, n); // print: "10   |   10"
c) 自动类型前缀:printf("%#x",
 n); // print: "0xa"
d) 指定宽度:printf("%*d",
 w, n); // w=5, print: "   10"
                  printf("%*.*lf",
 5, 1, f); // f=123.45, print: "123.5"
e) 取得输出长度: printf("%d%n",
 n, &len); // print: "10" and len=2,
 %n must be at the end of the formatting string
2. scanf:
// s="Used with 12,4.5|0x123 specifiers_the\n value.";
a) 基本用法:sscanf(s, "%s %s %d,%f|%x", s1, s2,
 &a, &f, &b); // s1="Used"; s2="with"; a=12; f=4.5; b=0x123
b) 跳过一些结果:sscanf(s, "%*s
 %s", s1); // %*s reads "Used" and ignores it. s1="with"
s",
 buf); // read at most 10 chars into buf.
d) 简单的正则匹配:sscanf(s, "%[a-z]",
 buf); // buf="with" not "Used"!
                    sscanf(s, "%3c",
 buf); // buf="Use"
e) 读入一整行: sscanf(s, "%[^\n]",
 buf); // buf="Used with 12,4.5|0x123 specifiers_the"
用好printf和scanf的更多相关文章
- printf和scanf
		
一 printf和scanf(printf和scanf是c语言中的输入输出库函数) printf(”格式控制“,输出列表) <1>格式控制 其中包含 格式声明(%+相应格式对应字母).转义 ...
 - C的printf与scanf的用法
		
之前没学过C语言,只学过C++,所以就来自学下C语言了,其实个人认为C与C++的区别很小,基本上就是printf与scanf这点输出和输入的区别了,如果还有什么区别的话那就是要包含的头文件是不同的.比 ...
 - 【转】stm32CubeMx上移植自己的printf()和scanf()函数
		
要想printf()和scanf() 函数工作,我们需要把printf()和scanf() 重新定向到串口中.重定向是指用户可以自己重写C 的库函数,当连接器检查到用户编写了与C 库函数相同名字的函数 ...
 - C语言: 运算符,printf,scanf的用法
		
运算符/的运算结果和运算对象的数据类型有关,两个数都是in,则商就是int,取整数部分:被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不去掉小数部分如:16/5 == 3:16/5.0 ...
 - 数据类型、常量、变量、printf、scanf和运算符
		
数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式. C语言中有5大数据类型:基本类型.构造类型.指针类型.空类型.定义类型. C语言 ...
 - 重学C语言 -- printf,scanf
		
printf(); 用来显示格式串的内容 注意: 参数不可以换行,否则会出一个警告. 格式串中占位符比表达式数量多 会显示一个无意义值 格式串中占位符比表 ...
 - printf与scanf的返回值、注意点
		
printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数 ...
 - printf和scanf整理(后续填补)
		
scanf和printf头文件:<stdio.h> 1.%d.%3d.%03d.%-3d区分 %d:以十进制形式输出整数(int) %3d:指定宽度为3,不足的左边补空格 %03d:一种左 ...
 - C++中printf和scanf的用法
		
(一)printf的用法 printf:按格式打印,向控制台输出.print:打印 ,f:formate,格式化. 在使用printf向控制台输出时,不建议使用中文字符串,中文字符串的问题比较复杂,有 ...
 - 2_C语言中的数据类型 (七)printf与scanf
		
1 字符串格式化输出和输入 1.1 字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2 ...
 
随机推荐
- 【转载】完全版线段树 by notonlysuccess大牛
			
原文出处:http://www.notonlysuccess.com/ 今晚上比赛就考到了 排兵布阵啊,难受. [完全版]线段树 很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时 ...
 - 第一个线性回归程序(基于Jupyter)
			
import pandas as pdimport seaborn as snssns.set(context="notebook", style="whitegrid& ...
 - 你真的了解JAVA里的String么
			
Java中String类细节问题 (考察点Java内存分配问题) 1. String str1 = "abc"; System.out.println(str1 == &quo ...
 - Java中ArrayList与数组间相互转换
			
在实际的 Java 开发中,如何选择数据结构是一个非常重要的问题. 衡量标准化(读的效率与改的效率) : ① Array: 读快改慢 ② Linked :改快读慢 ③ Hash:介于两者之间 实现Li ...
 - IIS10和Tomcat8整合
			
在网上找了很久,也试了很多,都没有弄好.后来根据这个博客,做一些小修小改,终于成功了. 我是从里面的IIS与TOMCAT整合那里开始看的.第一步上面要创建一个注册表,我没有创建.我是创建了一个名为&q ...
 - cURL和file_get_contents实现模拟post请求
			
以前面试时候,面试官问过我后端有没有跨域问题,但是不敢肯定,现在可以肯定的说没有. 不文用php的cURL和file_get_contents方法分别实现后端跨域.本文场景也是在tp5下实现的. 一, ...
 - 修改CSV中的某些值
			
file.csv文件如下,然后对其中某些值进行变换操作,刚学Powershell的时候操作起来很麻烦,现在看来其实就是对于哈希表的操作. col1,col2,col3,col4 text1,text2 ...
 - 扩展SplitContainer控件
			
效果图: 自定义控件实现代码: using System; using System.ComponentModel; using System.Drawing; using System.Window ...
 - Kafka性能之道
			
Kafka高性能之道 高效使用磁盘 零拷贝 批处理和压缩 Partition ISR 高效使用磁盘 >顺序写cipan >Append Only(数据不更新,无记录级的数据删除,只会整个s ...
 - 修改MSSQL字段类型
			
update Data_Project set SyncTime=NULL; alter table Data_Project alter column SyncTime datetime; upda ...