大家帮忙看下这个程序,错在哪,小弟我实在找不到,知道的大哥指点下
发布时间:2011-06-23 14:26:07 文章来源:www.iduyao.cn 采编人员:星星草
大家帮忙看下这个程序,错在哪,我实在找不到,知道的大哥指点下
大家帮忙看下这个程序,错在哪,我实在找不到,知道的大哥指点下
#include<stdio.h>
#include<windows.h>
void main()
{
enum color{red,yellow,blue,white,black};
enum color c;
for(c=red;c<=black;c++)
{
switch(c)
{
case red:printf("红色");break;
case yellow:printf("黄色");break;
case blue:printf("蓝色");break;
case white:printf("白色");break;
case black:printf("黑色");break;
}
printf("\n\n");
}
MessageBox(NULL,"要关闭窗口请点确定","提示",MB_OK);
}
------解决方案--------------------
switch(c)
{
case 0:printf("红色");break;
case 1:printf("黄色");break;
case 2:printf("蓝色");break;
case 3:printf("白色");break;
case 4:printf("黑色");break;
}
------解决方案--------------------
<=,++等符号在枚举类型中都未定义,使用是非法的,如果非要循环则全用int类型是较好选择。其实从你的程序可以看出来你只是在练习枚举类型的使用,所以循环是完全没有必要的
------解决方案--------------------
错误有可能是字符集问题,你在每个字符串前加_T 试下,例如:"红色" 改为 _T("红色");还有就是main函数的写法从void main(){} 改为int main(){return 0;}
还有就是你要贴出编译错误,别人才知道问题所在
------解决方案--------------------
试试三楼的方法,当然也有可能是你项目的属性配置有问题,你把错误提示贴出来看看
------解决方案--------------------
#include<stdio.h>
#include"stdafx.h"
#include<windows.h>
enum color{red,yellow,blue,white,black};
void main()
{
color c;
c=red;
for(int i=1;i<=int(black);i++)
{
switch(c)
{
case red:printf("红色");break;
case yellow:printf("黄色");break;
case blue:printf("蓝色");break;
case white:printf("白色");break;
case black:printf("黑色");break;
}
printf("\n\n");
c=color(i);
}
MessageBox(NULL,L"要关闭窗口请点确定",L"提示",MB_OK);
}
上面的程序是在尽量保留你的原程序的基础上改的,我用vs2005建的CLR程序所以MessageBox的语法改了一下。
------解决方案--------------------
我的失误,把for(int i=1;i<=int(black);i++)改成for(int i=1;i<=int(black)+1;i++)就行了,或者重写一下:
#include<stdio.h>
#include<windows.h>
enum color{red,yellow,blue,white,black};
void main()
{
color c;
for(int i=0;i<=int(black);i++)
{
c=color(i);
switch(c)
{
case red:printf("红色");break;
case yellow:printf("黄色");break;
case blue:printf("蓝色");break;
case white:printf("白色");break;
case black:printf("黑色");break;
}
printf("\n\n");
}
MessageBox(NULL,"要关闭窗口请点确定","提示",MB_OK);
}
------解决方案--------------------
动脑子想想就清楚enum没有++运算
比如
enum color { red=0,white=1,yellow=2,black=4}
color c=yellow;
c++ 变成了什么??
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
关于visual studio 2005的工程文件*.vcproj的问题
请问:Visual Studio 2005 新建一个工程之后,会自动生产一个*.vcproj的一个文件,这...
-
用MFC画图的问题
我现在要用随机数产生300个固定的点保存在数组中,并在ondraw里画出这300个点,而且通过定时器使这300个点做运动。...
-
VS2010中的C++怎么连接数据库?
之前一直用VC++6.0的、现在想学学用最新的VS、但是感觉连接数据库和之前不一样了、具体应该怎么弄...
-
CLI编程 高手帮忙
我现在用C++/CLI 混编,
我有一个方法, 是调用一个C 的类库 得到一个 char * 的值
现在我...
-
新手求教::VC.NET2003里面的"添加变量"菜单变灰了,怎么弄?
最近学着用.net写程序,以前用的是6.0,不知道为什么我设计的EDIT Con...
-
刚学习vc.net 请教一个String做参数的问题,请高手指教一下
下面的代码为什么不能编译呢,出现这个错误呢
.\clr.cpp(12) : error C3...
-
VS2003中通过ADO取SQL2003中bigint 负值变正值的问题,求助!
在SQL2003中 数据库中假设 一个bigint类型的数据位-1234这样的值,通过如...
-
新手学习VC用那个版本的编译器好!
新手学习VC用那个版本的编译器好!?
------解决方案--------------------
VC++6.0
------解决...
-
正则表达式
有这样的字符串
"1,',2"",3"
希望将单个的"替换成单引号,将连续两个的""替换成一个双引号。
正则表达式该如何写。
...
-
为什么<<精通MFC>>附带的源程序不能编译成功
vc2010编译后有两个错误提示,分别如下,
错误一:
1>c:\program files\microsoft vi...