这段代码哪里错了?

#include<iostream>
#include<string>
using namespace std;

int main()
{
string days;
cin>>days;
switch(days)
{
case "Monday":
cout<<"Back to work";
break;
case "Tuesday":
cout<<"Back to work";
break;
case "Wednesday":
cout<<"Back to work";
break;
case "Thursday":
cout<<"Back to work";
break;
case "Friday":
cout<<"Back to work";
break;
case "Saturday":
cout<<"Weekends";
break;
case "Sunday":
cout<<"Weekends";
break;
case default:
cout<<"Error!";
}
return 0;
}

vs2008提示:
-----------------------------------------------------------------

------ 已启动生成: 项目: CLR1, 配置: Debug Win32 ------
正在编译...
main.cpp
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(9) : error C2450: “std::string”类型的 switch 表达式是非法的
没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(11) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(14) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(17) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(20) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(23) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(26) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(29) : error C2051: case 表达式不是常量
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(32) : error C2059: 语法错误 : “default”
c:\documents and settings\martin\my documents\visual studio 2008\projects\clr1\clr1\main.cpp(34) : warning C4060: switch 语句没有包含“case”或“default”标签
生成日志保存在“file://c:\Documents and Settings\Martin\My Documents\Visual Studio 2008\Projects\CLR1\CLR1\Debug\BuildLog.htm”
CLR1 - 9 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
仔细看清楚,我加冒号了~

case 表达式不是常量
都写这么清楚了,case后面可以是字符串吗?
不行的吧,必须是整数或者单个字符
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-10
case(1):"Monday":
cout<<"Back to work";
break;
case(2):"Tuesday":
cout<<"Back to work";
break;
应该是这样的格式
第2个回答  2010-08-10
switch后面不能是变量,只能是常量
第3个回答  2010-08-10
case 后面有“:”的
第4个回答  2010-08-10
你的代码用C语言可以编译吗 如果可以 那就应该是C++的特殊书写的缘故
相似回答