#include <stdio.h>
#include <string.h> int main()
{
const char the_text[] = "this is test text!"; // 在C 语言中输出等宽度的显示我们一般采用的是在前面加数字的方法,
printf("%30s\n", the_text); // 右对齐输出,结果:" this is test text!"
printf("%-30s\n", the_text); // 左对齐输出,结果:"this is test text! " // 其实C 语言还对printf() 提供了一种动态添加的方法,也就是可以使用变量的方法来
// 设置该宽度,这样就大大提高了等宽度输出的灵活性。 const char text_char[] = "char";
const char text_char_var[] = "m_ch_var";
const char text_char_ptr[] = "m_ch_ptr";
const char text_int32[] = "int32_t";
const char text_int32_var[] = "m_nvar";
const char text_int32_ptr[] = "m_pvar"; printf("%s %*s%s;\n", text_char, - strlen(text_char), "", text_char_var);
printf("%s*%*s%s;\n", text_char, - strlen(text_char), "", text_char_ptr);
printf("%s %*s%s;\n", text_int32, - strlen(text_int32), "", text_int32_var);
printf("%s*%*s%s;\n", text_int32, - strlen(text_int32), "", text_int32_ptr);
// (13 + ...) 的结果是"std::vector<%s>" 的总字节宽度
printf("std::vector<%s> %*s%s;\n",
text_char, - ( + strlen(text_char)), "", "m_vec_var"); /*
// 输出的结果如下:
char m_ch_var;
char* m_ch_ptr;
int32_t m_nvar;
int32_t* m_pvar;
std::vector<char> m_vec_var;
*/ // 对于字符串而言,还可以使用"%.*s" 限制输出字符串的最大长度,即:可以将"char", 限制只输出"ch",或者"cha".
printf("%.*s, end.\n", , the_text);
printf("%.*s, end.\n", , the_text);
printf("%.*s, end.\n", , the_text);
printf("%.*s, end.\n", , the_text); /*
// 输出结果如下:
t, end.
th, end.
thi, end.
this is , end.
*/ // 同时在前面再加上一个* 就跟上面的意义一样,设置输出宽度
printf("%*.*s, end.\n", , , the_text);
printf("%*.*s, end.\n", , , the_text);
printf("%*.*s, end.\n", , , the_text);
printf("%*.*s, end.\n", , , the_text); /*
// 输出结果如下:
t, end.
th, end.
thi, end.
this is , end.
*/ // 以上的方法同样可针对浮点数,特别是"%*.*lf",应该特别有用。 return ;
}

printf("%*s\n", 1, ""); 使用"printf();" 的格式化输出动态制定等宽度输出。的更多相关文章

  1. 与C中printf并列的System.out.printf 用法(转载)

    转载地址: https://blog.csdn.net/qq_39017218/article/details/80042287 printf的格式控制的完整格式: %  -  0  m.n  l或h ...

  2. C printf按8进制、10进制、16进制输出以及高位补0

    ; /*按整型输出,默认右对齐*/ printf("%d\n",PrintVal); /*按整型输出,补齐4位的宽度,补齐位为空格,默认右对齐*/ printf("%4d ...

  3. printf("%d",5.01)和printf("%f",5)的输出结果

    printf(); printf("%d\n",5.01); printf(); printf(.f); 输出结果: 看到结果,会感觉非常奇怪.1处怎么会输出0呢?2又为何会显示这 ...

  4. printf 参数检查 __attribute__((format(printf, 1, 2)))

    With GCC, I can specify __attribute__((format(printf, 1, 2))) , telling the compiler that this funct ...

  5. c++ Cout 输出格式

    控制符是在头文件iomanip.h中定义的对象.使用前必须把iomanip.h包含进来 1. I/O的书写格式 I/0流是输入或输出的一系列字节,当程序需要在屏幕上显示输出时,可以使用插入操作符“&l ...

  6. C语言之顺序结构

    该章内容:这章我们学习三大结构之一:顺序结构,它是程序从上往下顺序执行,是程序运行最简单的方式.printf和scanf函数使用和特例是必考知识.本章是考试的重点章节. 学习方法:从简单的顺序结构题目 ...

  7. 关于printf错用格式化字符串导致double和long double输出错误的小随笔

    [题外话] 以前用HUSTOJ给学校搭建Online Judge,所有的评测都是在Linux下进行的.后来为了好往学校服务器上部署,所以大家重新做了一套Online Judge,Web和Judge都是 ...

  8. C语言printf()函数:格式化输出函数

    C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为:     int printf( char ...

  9. 【Shell脚本学习15】shell printf命令:格式化输出语句

    printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 ech ...

随机推荐

  1. javascript encode或者decode html

    function myHTMLEnCode(str) { var s = ""; if (str.length == 0) return ""; s = str ...

  2. Iaas-cloudstack2

    流程是下面的模板安装脚本,将对应的hypervisor模板下载下来并另存为临时文件,并解压缩,并将其移动到二级存储相应目录下,仅完成此工作. [root@manage nfs]# /usr/share ...

  3. 【转】3篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:官方原生方法分析

    作者: 牛A与牛C之间 时间: 2013-11-17 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第3篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  4. maven NoClassDefFoundError: org/mortbay/util/Attributes

    在运行mvn jetty:run报错: NoClassDefFoundError: org/mortbay/util/Attributes 解决方法: deleted /home/jenkins/.m ...

  5. bootstrap3-typeahead 自动补全

    很酷的一个自动补全插件 http://twitter.github.io/typeahead.js 在bootstrap中使用typeahead插件,完成自动补全 相关的文档:https://gith ...

  6. C#执行DOS命令(CMD命令)

    在c#程序中,有时会用到调用cmd命令完成一些功能,于是在网上查到了如下方法,实现了c#执行DOS命令,并返回结果.         //dosCommand Dos命令语句         publ ...

  7. java 常用集合例子

    package test; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import ...

  8. [算法] 数据结构之AVL树

    1 .基本概念 AVL树的复杂程度真是比二叉搜索树高了整整一个数量级——它的原理并不难弄懂,但要把它用代码实现出来还真的有点费脑筋.下面我们来看看: 1.1  AVL树是什么? AVL树本质上还是一棵 ...

  9. jenkins:应用篇(Gatling plugin的使用)

    Jenkins的功能强大,在于它的插件式框架,能扩展功能,自动化当中,很容易想到的是对提交的新代码做测试,这里gatling主要是负责压力测试,也就是所谓的性能.关于gatling,可以参考我前面的博 ...

  10. [转] matlab figure最大化

    http://blog.163.com/yinhexiwen@126/blog/static/6404826620122942057214/ % figure 窗口最大化,坐标轴也随着窗口变大而相应变 ...