C++旧版课程库
C++第 2 期查看课程总览

052 C语言的输出 - 左右对齐

主要内容

1. 左对齐

大家平时注意到了吗,一般情况下,我们的输出,默认都是左对齐的。 这符合我们的书写习惯。 但是,有时候会遇到一些问题。比如:我们要输出一个表格中的数据。 请试试看,表格一行的数据请用 '|' 分隔。 示例程序 1 :

#include < cstdio >
int main()
{
    printf("Name|Score\n");        // \n 表示回车换行
    printf("Alexander Zhang|90\n");
    printf("Jim Sun|150\n");
    return 0;
}
这个例子的输出如下: 输出的内容比较乱,不直观。 所以,printf 函数还提供了指定格式的输出方式。 示例程序 2 :

#include < cstdio >
int main()
{
    printf("%-20s | %-20s\n", "Name", "Score");
    printf("%-20s | %-20s\n", "Alexander Zhang", "90");
    printf("%-20s | %-20s\n", "Jim Sun", "150");

    // %-20s 中,20表示位数,s表示字符串,负号表示左对齐(不可以省略)

    return 0;
}
这个例子的输出如下: 左对齐的小结如下:

2. 右对齐

什么时候会用到呢?请回想一下你身边的例子。 电梯的楼层显示,是右对齐的。 手表的数字时间显示,特别是小时部分。一般是前面补零式的右对齐。 篮球比赛的记分牌。 阿拉伯语,等 将上述的例子,改写成右对齐的方式:

#include < cstdio >
int main()
{
    printf("%20s | %20s\n", "Name", "Score");
    printf("%20s | %20s\n", "Alexander Zhang", "90");
    printf("%20s | %20s\n", "Jim Sun", "150");

    // %20s 中,20表示位数,s表示字符串,表示右对齐(有负号,就是左对齐)

    return 0;
}
这个例子的输出如下: 左对齐的小结如下:

3. 小结

习题

课后练习