关于输出时末尾不加空格的方法以及“%d“和“%02d“等类型的printf的格式修饰符的使用方法

本文通过一道编程题介绍如何在C++中实现特定格式的输出,重点讲解如何控制输出的格式,包括去除行末空格的方法及各种格式修饰符的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写的时候关于有一些题目输出时要求末尾不加空格,我发现可以通过bool类型去解决

例如hdu2099题:

Problem Description
一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?

Input
输入数据有若干组,每组数据包含二个整数a,b(0< a<10000, 10< b<100),若遇到0 0则处理结束。

Output
对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。

Sample Input

200 40
1992 95
0 0

Sample Output

00 40 80
15

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF)
    {

        if (m==0&&n==0)
            break;
        else
        {
            int t=0;//开始使t=0以使第一个输出不加空格
            for(int i=0;i<100;i++)
            {
                if((m*100+i)%n==0)
                {
                    if(t)//当t!=0时bool类型即为真,输出空格
                        printf(" ");
                    printf("%02d",i);//格式修饰符使用方法在下面
                    t++;//使得各个输出值之间均有空格
                }
            }
            printf("\n");
        }
    }
}

格式修饰符的使用方法:
%d 是输出十进制整数,d是decimal的缩写。

%2d要求输出数据为两位,大于两位则原样输出,例如2,123,遇到2会补一个空格(输出2位),看到123会输出123。

%m.ns:输出字符串,m指定输出宽度,n表示字符串的前n个字符输出到屏幕,如果m>n则需要补空格,例如%5.3s表示输出宽度是5,而字符实际只输出3个则需要补空格2个。

%m.nf:m表示找整个浮点数输出宽度,n表示小数输出的宽度。例如%5.2f 输出一个58.6238,那么实际输出的是58.62,注意了,m是整个数据要输时候的宽度。

%02d:默认情况下,数据数据宽度不够2位是用空格填补的,但是因为2d前面有0,表示,数据宽度不足时用0填补,例如%03d输出 12,那么实际输出到屏幕的是012。

备注:
本文printf的格式修饰符的使用方法部分引用的其它博客的内容(原文链接为:https://blog.youkuaiyun.com/weixin_37770552/article/details/77155564),在此进行说明并表示感谢。

如有问题,欢迎在评论区提问

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值