回 帖 发 新 帖 刷新版面

主题:请大虾帮忙十分感谢

本人想编写一个显示某一天课程的程序可是出现错误主要是switch出现错误
Cpp1.cpp
C:\Documents and Settings\Administrator\My Documents\Cpp1.cpp(21) : error C2051: case expression not constant
C:\Documents and Settings\Administrator\My Documents\Cpp1.cpp(23) : error C2051: case expression not constant
C:\Documents and Settings\Administrator\My Documents\Cpp1.cpp(26) : warning C4060: switch statement contains no 'case' or 'default' labels
Error executing cl.exe.

Cpp1.obj - 2 error(s), 1 warning(s)


#include "iostream.h"
int conduct(char*b);
void find();
void main()
{ int quit=1;
char command[20];
while(quit)
{cout<<"please input command"<<endl;
for(int i=1;i=20;i++)
{
    cin>>command[1];
    if(command[i]=13)
    break;
    quit=conduct(command);
    }
}
}
int conduct( char*b)
{switch(*b)
{
case "find":
find();
case "quit":
    
    return  0;
}
}
void find()
{ cout<<"please input date"<<endl;
    int a;
cin>>a;
switch (a)
{case 1:
cout<<"数据库"<<"    "<<"vc"<<"      "<<"选修"<<endl;
break;
case 2:
cout<<"英语  "<<"    "<<"自习      "<<"组装"<<endl;
}
}
[fly]我是一个新手[/fly]

回复列表 (共1个回复)

沙发

咣挡~  出错提示不是写得很清楚了吗?  
switch 需要的是一个常量,   你给了它一个字符串,字符串是不能直接做比较的。
编译器还没有那么智能。  你改一下,让它去判定一个字符 不就好了吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册