c语言中有用但不常见的printf技巧—字符串的格式化输入输出

真恶心,看到本人写的,在一些恶心的网站上展示出来,真恶心,为啥那些网站还被搜索引擎收录!
C语言的奇淫怪巧
更详细的说明,请参考下面文档
cpluscplus 写道
http://www.cplusplus.com/reference/cstdio/printf
 
  • 问题1,输出一个字符串,但最多只输出5个 (比如向mysql中插入字符串,显然有个最大长度限制)
  • 问题2,输出一个字符串,但该字符串占100个位置,如果不足,输出空格(即左对齐,右对齐)
  • 问题3,输出一个字符串,只输出其前5个,并且占100个位置

 

这些其实在printf格式中,都有,非常强大的printf/scanf(一直都觉得C语言的输入输出流,要比C++的舒服多了)

+,-用于对齐,%A.Bs,表示占A格,但输出B个字符。

结合*号,非常强大。%.*s可以实现如下功能:通过外部传入参数限定字节数。

 

 

#include <stdio.h>
int main(int argc,char* argv[])
{

    printf("%.5s OK\n","HELLO WORLD");
    printf("%-5.2s OK\n","HELLO WORLD");
    printf("%+5.2s OK\n","HELLO WORLD");
    printf("%*s OK\n",5,"HELLO WORLD");
    printf("%-*s OK\n",100,"HELLO WORLD");
    printf("%*s OK\n",100,"HELLO WORLD");
    printf("%+*s OK\n",100,"HELLO WORLD");
return 0;

}

 运行结果:

[root@localhost wx]# ./a.out 
HELLO OK
HE    OK
   HE OK
HELLO WORLD OK
HELLO WORLD                                                                                    OK
                                                                                   HELLO WORLD OK
                                                                                   HELLO WORLD OK
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值