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

你可能感兴趣的:(printf,scanf)