注册 登录
编程论坛 C++教室

程序中的%意义

lyj2010lyj 发布于 2010-11-02 19:20, 776 次点击
在“%”后面跟一个数字是什么意义。
列如“%5”
10 回复
#2
Only_Boby2010-11-02 21:53
这是对5的求余    就是对前面那个int型整数的求余运算
#3
ljt2010-11-02 22:09
看你用在什么地方了,有的地方对一些字符串的格式化会用到
#4
xin3109232010-11-02 22:42
2楼正解  就是求余,楼主还是新手吧
#5
2010-11-03 00:00
%在不同的地方  代表的意义不同

如果是字符串里printf("%5d", a);   这里的%5 就是格式化控制符

如果是 a % 5;  这就是对5求余数
#6
lyj2010lyj2010-11-03 19:16
回复 5楼 cacker
恩,就是这样。但是比如说a=123456789
printf("%5d",a);
输出会是什么
#7
lyj2010lyj2010-11-03 19:17
回复 2楼 Only_Boby
可能是我没有说清楚吧。
#8
pangding2010-11-03 21:36
回复 6楼 lyj2010lyj
如果 a 比 5 宽,在 % 和 d 之间加不加 5 就没什么区别。如果输出不足 5 位,那就有区别了。楼主自己试试就知道。
#9
kingsroot2010-11-04 16:58
看这个符号所在的类对他的定义!!这个说不准的  你甚至可以重载他 让他做减法呢!
#include <iostream>

using namespace std;

class MyOperator
{
    public:
        MyOperator();
        ~MyOperator();
        uint32_t operator =( uint32_t InitNumber );
        uint32_t operator %( uint32_t DesNumber );
        friend ostream& operator << ( ostream& out, MyOperator& MyOut );
    private:
        uint32_t number;
};

ostream& operator << ( ostream& out, MyOperator& MyOut )
{
    out << MyOut.number << endl;

    return out;
}

MyOperator::MyOperator()
{
}

MyOperator::~MyOperator()
{
}

uint32_t MyOperator::operator = ( uint32_t InitNumber )
{
    number = InitNumber;

    return number;
}

uint32_t MyOperator::operator % ( uint32_t DesNumber )
{
    number = number - DesNumber;
    return number;
}

int main( void )
{
    MyOperator a;

    a = 10;

    cout << a << endl;
    cout << a % 5 << endl;

    return EXIT_SUCCESS;
}
这个环境下面  a%5就相当于a-5  所以这个说不定的
#10
问道炼心2010-11-04 22:04
求余
#11
swp1601082010-11-05 09:33
以下是引用lyj2010lyj在2010-11-3 19:16:31的发言:

恩,就是这样。但是比如说a=123456789
printf("%5d",a);
输出会是什么
格式化输出显示的话可能看不清楚 写入文件里就明白
你这个例子是没申明区别 如果a=123
printf("%5d",a);会显示[  123]
1