标题:枚举型自加运算问题求解
只看楼主
leepro
Rank: 2
等 级:论坛游民
帖 子:25
专家分:37
注 册:2009-10-23
结帖率:83.33%
已结贴  问题点数:10 回复次数:9 
枚举型自加运算问题求解
哪位大哥帮忙找一下下面程序的错误:
我调试时提示:
错误    2    error C2676: binary '++' : 'wmain::color' does not define this operator or a conversion to a type acceptable to the predefined operator    c:\documents and settings\颩,無心\my documents\visual studio 2005\projects\enum\enum\enum.cpp    15   


这是个枚举型的例子,书上说枚举型可以自加运算,但这儿却出错;我用的VS2005调试的;好像VC6.0也是同样的错误;


#include "stdafx.h"
#define n "%-10s"

void main()
{
    enum color{red,yellow,blue,white,black};
    enum color i,j,l,pri;
    int m,loop;
    m=0;
    for(i=red;i<=black;i++)
        for(j=red;j<=black;j++)
            if(i!=j)
                for(l=red;l<=black;l++)
                    if((l!=i)&&(l!=j))
                    {
                        m=m+1;
                        printf("%-4d",m);
                        for(loop=1;loop<=3;loop++)
                        {
                            switch(loop)
                            {case 1:pri=i;break;
                            case 2:pri=j;break;
                            case 3:pri=l;break;}
                            switch(pri)
                            {
                            case red:printf(n,"red");break;
                            case yellow:printf(n,"yellow");break;
                            case blue:printf(n,"blue");break;
                            case white:printf(n,"white");break;
                            case black:printf(n,"white");break;
                            }
                        }
                        printf("\n");
                    }
}
搜索更多相关主题的帖子: 问题求解 运算 枚举 
2009-11-24 13:39
caojulians
Rank: 2
等 级:论坛游民
帖 子:39
专家分:67
注 册:2009-11-15
得分:3 
enum color{red,yellow,blue,white,black};
。。。
for(i=red;i<=black;i++)
===============================================
改在c下试试(扩展名为.c而不要.cpp);且black是最后一个枚举常量,但循环中i++会超过这个值(越界了)。
C++中对越界检查要比C严格得多!要不在枚举常量声明的black后加一个无用的枚举常量试试。
2009-11-24 13:51
leepro
Rank: 2
等 级:论坛游民
帖 子:25
专家分:37
注 册:2009-10-23
得分:0 
还是不行,同样的错误,好像是关于枚举型自增运算的问题
2009-11-24 18:18
caojulians
Rank: 2
等 级:论坛游民
帖 子:39
专家分:67
注 册:2009-11-15
得分:0 
用C编译,将头文件改为stdio。h。不能用C++
2009-11-24 20:16
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:3 
只有turbo c才能够运行枚举类型!

愿用余生致力编程
2009-11-24 20:21
caojulians
Rank: 2
等 级:论坛游民
帖 子:39
专家分:67
注 册:2009-11-15
得分:0 
非也。我用的是DEV C++,但要在C下编译运行。
2009-11-24 20:45
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
回复 6楼 caojulians
那不还是遵循c的语法吗??

愿用余生致力编程
2009-11-24 20:52
leepro
Rank: 2
等 级:论坛游民
帖 子:25
专家分:37
注 册:2009-10-23
得分:0 
用vc6.0也不行吗?我用VC6.0也不行,同样的错误,当然头文件改成#include"stdio.h"了。
2009-11-24 23:01
leepro
Rank: 2
等 级:论坛游民
帖 子:25
专家分:37
注 册:2009-10-23
得分:0 
谁能帮我解释一下提示错误的意思吗:
错误    2    error C2676: binary '++' : 'wmain::color' does not define this operator or a conversion to a type acceptable to the predefined operator
2009-11-24 23:03
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:3 
2楼正解···LZ注意。。VC是可以运行C和C++的,但看的不是头文件名。。。即不是说加了"#include"stdio.h""就说它是C语言的文件了,那只是一个编译预处理命令。。。
如果是想纯C语言的文件的话,当你新建保存的时候,请保存为*.c格式,*.cpp是C++的扩展名。。。LZ回去看看,你的文件的扩展名肯定是.cpp。。。改改改···
然后按2楼高手说的做··
2009-11-25 09:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293213-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.173752 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved