printf的另类使用

今天偶然对printf的一些另类实现。

转载请注明出处:http://blog.csdn.net/u010484477谢谢^_^

我们总是用printf做各种输出语句:

printf("%d",i); 
printf("%s",str); printf("I‘m xingyanhong\n");

今天偶然看到了这样一句话:

int nflag = printf("%d",i);

就觉得很纳闷,这么执行后,nflag又是什么值呢?于是我就实现了一下,得到了下面的:

发现nflag与i的值一样了。

这是整型的情况,其他类型又会怎样呢?我又进行了实验:

这下有意思了,nflag的数并没有像int型时一样和i相等而是等于8,仔细观察我们可以发现,这个数字8正是i的所有位数+1(代表小数点)

那么字符串又会怎样呢?

我们接着来:

这里nflag的值为9了,为什么呢

^_^最后总结一下:

数字 INT
printf 返回对应数字

数字 FLOAT
printf返回数字的位数+1(小数点)

字符串
CHAR* printf返回字符串的长度,相当于strlen

其实还有其他种的类型,大家可以自己去试一试。这个知识点也许会有人嗤之以鼻,但我贴出来的想法,就是觉得这个我并不知道的小知识,自己动手实现归纳出来还是有意义的,个人觉得过程还是挺重要的。

最后送大家一句话:

每一个你可以努力地今天,都是一份厚礼!

printf的另类使用,布布扣,bubuko.com

时间: 2024-10-13 02:27:44

printf的另类使用的相关文章

hdoj 1203 I NEED A OFFER! 【另类01背包】【概率背包】

题意:... 策略:动态规划. 因为是求至少能得到一个offer的概率,那我们可以反着求,求得不到一个offer的概率,最后用1减去就好了. 代码: #include<string.h> #include<stdio.h> double dp[10010]; struct node{ int a; double b; }s[10010]; int main() { int n, m, i, j; while(scanf("%d%d", &n, &

printf和echo结婚种种情况

一.Printf简介 Printf的功能是格式和打印数据(format and print data),即把标准输出的内容,通过printf命令转换成另类的格式输出. 二.echo与printf 异曲同工之妙 echo命令可以实现的功能,printf命令同样可以实现,两者之间的微妙之处在于printf+awk可以实现更强大的功能,对于echo可以说printf更胜一筹. 1)标准输出 [[email protected]_master scripts]# echo "hello world&qu

nyoj 860 又见01背包 【另类01背包】

分析: 首先这道题不能当做普通的01背包问题,因为W <= 10^9,开不了,那么大的数组,肯定有其他的思路,观察一下我们知道价值v小的很,最大100, 那我们就可以利用这一点,拿价值 之和作为原来的质量之和, 但是有一点要注意:因为题意是要在质量不超过W的范围内,找出最大的价值,我们现在是以最大的价值求质量,那么仔细分析一下,我们就能想明白,要以某价值i的背包存放尽量小的质量,这样反过来分析一下就可以知道,较小的质量有个较大的价值序号,这样完全满足题意了, 最后还有一点,就是价值背包的每一个(

C语言实现另类“多态”的一种思路

上篇博文中通过参数的多样化来实现函数多态特性,然而存在一种实际的场景是参数个数和类型一致的函数, 但是运行过程不同,例如+.-.*./ 等基本的四则远算,其都是二元远算,且参数类型基本一致,此时该如何多态呢. 我觉得还是有点意思的.多态的目的是减少重复定义,选择最合适的类型自动匹配执行对应函数. (还有一种是父类对象引用子类实例,但C中没有继承的概念,所以这个不再解释) 说的这么悬乎,我觉得可以使用隐藏函数名的方式来达到预期的效果(仅是一种思路). 实例如下: #include <stdio.h

hdoj 2035 人见人爱A^B 【另类阶乘】

这道题就是大数阶乘的另类运用. 直接上代码: #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int dp[1005][1005]; int main() { int n, m, a[3], i, j; //数组开到3就是前三位 while(scanf("%d%d", &n, &m), n||m){ memset(a, 0, s

牛牛的背包问题(另类背包问题)

??: 题目描述 牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w. 牛牛家里一共有n袋零食, 第i袋零食体积为v[i]. 牛牛想知道在总体积不超过背包容量的情况下,他一共有多少种零食放法(总体积为0也算一种放法). 输入描述: 输入包括两行第一行为两个正整数n和w(1 <= n <= 30, 1 <= w <= 2 * 10^9),表示零食的数量和背包的容量.第二行n个正整数v[i](0 <= v[i] <= 10^9),表示每袋

C#实现可变数量参数,像printf那样

C语言的printf函数,参数的数量可以是 可变的.使用 va_start 和 va_end  实现. C++中,实现参数可变,可以用 overload.如果参数数量不是很多的话,可以一个参数实现一个函数,两个参数再实现一个函数,三个参数再实现一个函数... 或者使用C的方案. C#中,也可以用 overload.或者 params 关键字. 下述代码除了演示 params 实现变数量的参数,还演示了 这些参数的类型不必相同. 下述代码的输出是 1 2 one two aa one two aa

shell文本过滤编程(五):awk之printf

[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 在大多数情况下 awk 的 print 语句可以完成任务,但有时我们还需要更多.在那些情况下,awk 提供了两个我们熟知的函数 printf() 和 sprintf().是的,如同其它许多 awk 部件一样,这些函数等同于相应的 C 语言函数.printf() 会将格式化字符串打印到 stdout,而 sprintf()函数返回根据printf格式说明指定的格式

AccessibilityService辅助类用法(Android 中的另类钩子)

说在前面的话 为什么会把AccessibilityService叫做Android 中的另类钩子呢?搞过windows的都知道,钩子的含义就是能够监听到一切你想监听的内容,而Android中的AccessibilityService也可以监听到我们需要的某些功能. 用法 简介 AccessibilityService是一个辅助类,可以监听我们手机的焦点,窗口变化,按钮点击等等.实现它的服务需要在手机设置里面->辅助功能在这里面找到你自己实现的辅助类,然后打开它就可以进行我们一系列的监听了. 实例