回 帖 发 新 帖 刷新版面

主题:c++编程

我按书编的程序居然有这么多错误,经仔细检查后没找出错误,和课本一样的。请高手指正。我用的是microsoft visual stuidio 2005 运行的,请指正,谢谢。
1#include "stdafx.h"
2#include"iostream"
3#include"cstring"
4using namespace std;
5struct month
6{
 7   char name[4];
 8   int number_of_day;
 9   
10};
11int main()
12{   using namespace std;
 13   char m[4];
  14  
15    month months[2]={ {"jan",31},{"feb",28}};
16    cout<<"input month is name:"<<endl;
17    cin>>m;
18for(int i=0;i!=2;i++)
19
 20   if(strcmp(m,months[i].name)==0)
21    {cout<<m<<":"<<months[i].number_of_day<<endl;
22    break;
23    }
24        
25
26        
27    
28        return 0;
29}
1>------ 已启动生成: 项目: jigou, 配置: Debug Win32 ------
1>正在编译...
1>c.cpp
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(13) : error C2552: “months”: 不能用初始值设定项列表初始化非聚合
1>        “main::month”: 不聚合带用户定义的构造函数的类型
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(13) : error C2552: “months”: 不能用初始值设定项列表初始化非聚合
1>        “main::month”: 不聚合带用户定义的构造函数的类型
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(18) : error C2036: “main::month *”: 未知的大小
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(18) : error C2027: 使用了未定义类型“main::month”
1>        c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(13) : 参见“main::month”的声明
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(18) : error C2228: “.name”的左边必须有类/结构/联合
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(20) : error C2036: “main::month *”: 未知的大小
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(20) : error C2027: 使用了未定义类型“main::month”
1>        c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(13) : 参见“main::month”的声明
1>c:\users\hang\documents\visual studio 2005\projects\jigou\jigou\c.cpp(20) : error C2228: “.number_of_day”的左边必须有类/结构/联合
1>xiugai.cpp
1>正在生成代码...
1>生成日志保存在“file://c:\Users\hang\Documents\Visual Studio 2005\Projects\jigou\jigou\Debug\BuildLog.htm”
1>jigou - 8 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========

回复列表 (共2个回复)

沙发

程序没什么大问题,以后用vs2005时创建空项目写程序
该后dev c++和vs2008都通过:

//#include "stdafx.h"
#include"iostream"
#include"cstring"
using namespace std;   //这里有了,下面就不需要了
struct month
{
    char name[4];
    int number_of_day;
 
};
int main()
{  
    //using namespace std;  //这里不需要了
    char m[4];
    
    month months[2]={ {"jan",31},{"feb",28}};
    cout<<"input month is name:"<<endl;
    cin>>m;
    for(int i=0;i!=2;i++)

    if(strcmp(m,months[i].name)==0)
    {
        cout<<m<<":"<<months[i].number_of_day<<endl;
        break;
    }   
    return 0;
}

板凳


我看过了真的对的诶~~高手哦!!!~~[em4]

我来回复

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