520,521,522

為{幸葍}努か 提交于 2020-11-02 08:22:56


大家都知道

520代表着“我爱你”、

521仍然代表着“我爱你”,


但是,

有多少人知道,

522代表着“一生一世”呢?


一段程序,

讲述了一个故事,

告诉它522,

它回答你1314。

Happy Valentine's Day


有趣的程序在这👇:

#include <bits/stdc++.h>using namespace std;
int main () { int LOVE; scanf ("%x", &LOVE); printf ("%d\n", LOVE); return 0;}


5月22日,又称“黑客情人节”。
16进制下的522,转化成10进制时,

我们惊喜地发现,结果恰好是1314,一个有非常美好寓意的数字。
由于10进制和16进制的转化在计算机领域尤为常见,5月22日也因此得名。






上文有趣的程序中,我们巧妙的运用了scanf和printf函数中的不同参数来实现进制间的转化。那么,输入输出函数之间还有什么“骚操作”呢?
天,我来向大家介绍一下printf在输出字符串几种不同的输出格式。

1printf ("%s", str);

原样输出字符串。

2printf ("%Ns", str);

输出指定长度的字符串,超长不截,不足右对齐。

其中,N为指定的长度。

3printf ("%-Ns", str);

类似2,区别在于不足时左对齐。

4printf ("%.N", str);

输出指定长度的字符串,超长截断,不足不补。

其中,N为指定的长度。

5printf ("%M.N", str);

输出指定长度的字符串,超长截断,不足不补,右对齐。

其中,N为指定长度,M为输出的总长度。

6printf ("%-M.N", str);

类似5,区别为左对齐。


测试程序如下:
#include <bits/stdc++.h>using namespace std;
char str[] = "hello, world!";
int main () { printf ("%s END\n", str); printf ("%6s END\n", str); printf ("%20s END\n", str); printf ("%-6s END\n", str); printf ("%-20s END\n", str); printf ("%.6s END\n", str); printf ("%.20s END\n", str); printf ("%20.6s END\n", str); printf ("%-20.6s END\n", str); return 0;}
大家可以自行实验,这里先附上程序运行截图:


关于printf输出字符串还有那些“黑科技”,大家可以在后台与我讨论哦。





本期就到这里啦,公众号还会持续更新。

内容下至基础编程,上至算法数据结构。

喜欢就关注吧


往期推荐

从飞鸽传书,到5G通讯

又一巨星跌落神坛——Magic Leap将何去何从?

信息学,“愚”你同在

C++究竟是写BUG神器,还是……

Π节 | 数学的狂欢

巨星的陨落。其中真相令人震惊!

神操作:微盟程序员“删库跑路”


本文分享自微信公众号 - 信息学竞赛从入门到巅峰(gh_44c678564e18)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!