c++程序加入windows.h后 报很多错

love_why 2013-04-30 11:02:06
#include<iostream>
#include<string>
#include<time.h>
#include<cstdlib>
#include"Singer.h"
Singer* creat() //选手链表
{
char define=' '; //用来存放结束标志
Singer* head;
Singer *p2,*p1;
while(define!='#')
{
string Name;
int Number;
cout<<"请输入姓名 编号"<<endl;
cout<<"姓名:";
cin>>Name;
cout<<"编号:";
cin>>Number;
define=getchar();
p1=new Singer(Number,Name);
if(Singer::counter==1)
{
p2=p1;
head=p2;
}
else
{
p2->next=p1;
p2=p1;
}
p2->next=NULL;
}
return head;
}

这是原来的 不加windows.h可以执行
加了windows.h之后
#include<iostream>
#include<string>
#include<time.h>
#include<cstdlib>
#include"Singer.h"
#include<windows.h>
Singer* creat() //选手链表
{
char define=' '; //用来存放结束标志
Singer* head;
Singer *p2,*p1;
while(define!='#')
{
string Name;
int Number;
cout<<"请输入姓名 编号"<<endl;
cout<<"姓名:";
cin>>Name;
cout<<"编号:";
cin>>Number;
define=getchar();
p1=new Singer(Number,Name);
if(Singer::counter==1)
{
p2=p1;
head=p2;
}
else
{
p2->next=p1;
p2=p1;
}
p2->next=NULL;
}
return head;
}

加了之后就报错 运行不了 就是想用Sleep 为什么这个程序加了之后会不能执行
别的程序加了之后就可以用
...全文
509 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小竹z 2013-04-30
  • 打赏
  • 举报
回复
我这边能运行额,除了那个static int counter没有定义之外。vs2008编译工具~
Athenacle_ 2013-04-30
  • 打赏
  • 举报
回复
1>d:\vs2012\project\singer\singer\singer.cpp(107): warning C4003: “max”宏的实参不足 先把你的max宏改个名
love_why 2013-04-30
  • 打赏
  • 举报
回复
引用 2 楼 zgxyz2010 的回复:
后面的几个错误可能是第一个错误引出的,楼主看哈你的Singer类型的定义哇,貌似是编译器没有识别出你的这个类型。
#ifndef SINGER_H    //头文件
#define SINGER_H
class Singer    //歌手类的声明
{
protected:
	int number;
	std::string name;
	float grade;
public:
	Singer* next;
	static int counter;//计数器
	Singer();          //默认构造
	Singer(int,std::string);//构造函数的重载 
	int Get_number();
	float Get_grade();
	std::string Get_name();
	friend std::ostream &operator<<(std::ostream &out,Singer& singer);   //运算符重载
};
std::ostream &operator<<(std::ostream &out,Singer* singer)
{
	out<<"姓名:"<<singer->Get_name()<<std::endl;
	out<<"编号:"<<singer->Get_number()<<std::endl;
	out<<"得分:"<<singer->Get_grade()<<std::endl;
	return out;
}
Singer::Singer(){};
Singer::Singer(int num,std::string Name)
{
	number=num;
	name=Name;
	counter++;
	grade=(float)((8000+rand()%2001)/100);
}
std::string Singer::Get_name(){return name;}
int Singer::Get_number(){return number;}
float Singer::Get_grade(){return grade;}
#endif;
不加可以运行 加了就不能运行...
小竹z 2013-04-30
  • 打赏
  • 举报
回复
后面的几个错误可能是第一个错误引出的,楼主看哈你的Singer类型的定义哇,貌似是编译器没有识别出你的这个类型。
love_why 2013-04-30
  • 打赏
  • 举报
回复

这是加了windows.h后的
1>d:\vs2012\project\singer\singer\singer.cpp(107): warning C4003: “max”宏的实参不足
1>d:\vs2012\project\singer\singer\singer.cpp(107): error C2226: 语法错误 : 意外的“Singer”类型
1>d:\vs2012\project\singer\singer\singer.cpp(107): error C2059: 语法错误:“)”
1>d:\vs2012\project\singer\singer\singer.cpp(108): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>d:\vs2012\project\singer\singer\singer.cpp(108): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
报错...

64,684

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧