c++运行的问题 5
我用的是vc6.0,程序运行的时候在窗口出现error:writeconsoleoutputcharacter;不知道这个错误是什么意思?还有一些解决的方法。求助!急!!...
我用的是vc6.0,程序运行的时候在窗口出现error:writeconsoleoutputcharacter;
不知道这个错误是什么意思?还有一些解决的方法。
求助!急!! 展开
不知道这个错误是什么意思?还有一些解决的方法。
求助!急!! 展开
2个回答
展开全部
你的错误基本上是以下几点:
1:有些{}没有匹配,如有{,下面没有}
2.有什么字符你是在中文的状态下打的,如if(,那个括号明显不一样哦,vc中认不到
3.你在用void 类型的函数时最好加上(),如Init()不然会有警告。
4.有些函数还没定义又没进行申明,就用到。这样程序认不到。要么你要在前面进行申明,要么把函数的定义写在调用函数的前面。
给你个建议:编程习惯要好点哦,这样以后你改自己的程序比较明显看的出自己错在哪,起码像{}不匹配的现象不会出现。
给你改好了,程序如下:
#include<iostream.h>
#include <stdlib.h>
#define LIFE_MAX_ROW 8//定义土地的最大行数
#define LIFE_MAX_COL 8//定义土地的最大列数
//进化状态
char g_land[LIFE_MAX_ROW+2][LIFE_MAX_COL+2]=;//代表土地的数组
unsigned g_gen=0;//进化次数
void Plant_Man();//手工播种函数
void Plant_Auto();//自动播种的函数
//初始化
void Init()
{
int i=1,j=1;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
g_land[i][j]='+';
}
//播种
void Plant()
{
int num;
cout<<"请选择您需要的播种方式,手工请按0,自动请按1"<<endl;
cin>>num;
if(num==0)
Plant_Man();
else
Plant_Auto();
}
void Plant_Man()//手工播种函数
{
int n,i,a,b;
cout<<"请您至少选择三块土地来进行播种,请输入您选择要播种几块土地:"<<endl;
cin>>n;
for(i=0;i<n;i++)
{
cout<<"请您输入要播种的土地所在行数:"<<endl;
cin>>a;
cout<<"请您输入要播种的土地所在列数:"<<endl;
cin>>b;
g_land[a][b]='@';
}
}
void Plant_Auto()//自动播种的函数
{
int n,a,b;
n=rand()%64;
for(int i=0;i<n;i++)
{
a=rand()%8+1;
b=rand()%8+1;
g_land[a][b]='@';
}
}
void Grow()//繁衍输出函数
{
int a[10][10]=;
int i,j,n=0;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
{
if(g_land[i][j]=='+')
{
if(g_land[i+1][j]=='@')n++;
if(g_land[i+1][j+1]=='@')n++;
if(g_land[i+1][j-1]=='@')n++;
if(g_land[i][j+1]=='@')n++;
if(g_land[i][j-1]=='@')n++;
if(g_land[i-1][j]=='@')n++;
if(g_land[i-1][j+1]=='@')n++;
if(g_land[i-1][j-1]=='@')n++;
if(n==3)
a[i][j]=1;
}
else if(g_land[i][j]=='@')
{
if(g_land[i+1][j]=='@')n++;
if(g_land[i+1][j+1]=='@')n++;
if(g_land[i+1][j-1]=='@')n++;
if(g_land[i][j+1]=='@')n++;
if(g_land[i][j-1]=='@')n++;
if(g_land[i-1][j]=='@')n++;
if(g_land[i-1][j+1]=='@')n++;
if(g_land[i-1][j-1]=='@')n++;
if(n<4&&n>1)
a[i][j]=1;
}
}
for(i=1;i<9;i++)
for(j=1;j<9;j++)
{
if(a[i][j]==0)
g_land[i][j]='+';
else
g_land[i][j]='@';
}
cout<<g_land<<endl;
}
void Judge()
{
int k,m,n=0;
for(int i=1;i<9;i++)
for(int j=1;j<9;j++)
if(g_land[i][j]=='@')
n++;
if(n==0)
{
cout<<"您的田地处于消亡状态,请选择是否重新开始游戏,若是请选择0,若不是选择1"<<endl;
cin>>m;
if(m==0)
Init();
else
cout<<"游戏结束"<<endl;
}
else if(n!=0)
{
cout<<"请问您要继续繁衍还是重新开始?继续请选择0,重新开始请选择1"<<endl;
cin>>k;
if(k==0)
Grow();
else
Init();
}
}
void main()
{
cout<<"这是一个关于进化的仿真游戏。您在一块地里播上种子,然后可以观察生命在这块地上的繁衍过程。"<<endl;
Init();
Plant();
Grow();
Judge();
}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
1:有些{}没有匹配,如有{,下面没有}
2.有什么字符你是在中文的状态下打的,如if(,那个括号明显不一样哦,vc中认不到
3.你在用void 类型的函数时最好加上(),如Init()不然会有警告。
4.有些函数还没定义又没进行申明,就用到。这样程序认不到。要么你要在前面进行申明,要么把函数的定义写在调用函数的前面。
给你个建议:编程习惯要好点哦,这样以后你改自己的程序比较明显看的出自己错在哪,起码像{}不匹配的现象不会出现。
给你改好了,程序如下:
#include<iostream.h>
#include <stdlib.h>
#define LIFE_MAX_ROW 8//定义土地的最大行数
#define LIFE_MAX_COL 8//定义土地的最大列数
//进化状态
char g_land[LIFE_MAX_ROW+2][LIFE_MAX_COL+2]=;//代表土地的数组
unsigned g_gen=0;//进化次数
void Plant_Man();//手工播种函数
void Plant_Auto();//自动播种的函数
//初始化
void Init()
{
int i=1,j=1;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
g_land[i][j]='+';
}
//播种
void Plant()
{
int num;
cout<<"请选择您需要的播种方式,手工请按0,自动请按1"<<endl;
cin>>num;
if(num==0)
Plant_Man();
else
Plant_Auto();
}
void Plant_Man()//手工播种函数
{
int n,i,a,b;
cout<<"请您至少选择三块土地来进行播种,请输入您选择要播种几块土地:"<<endl;
cin>>n;
for(i=0;i<n;i++)
{
cout<<"请您输入要播种的土地所在行数:"<<endl;
cin>>a;
cout<<"请您输入要播种的土地所在列数:"<<endl;
cin>>b;
g_land[a][b]='@';
}
}
void Plant_Auto()//自动播种的函数
{
int n,a,b;
n=rand()%64;
for(int i=0;i<n;i++)
{
a=rand()%8+1;
b=rand()%8+1;
g_land[a][b]='@';
}
}
void Grow()//繁衍输出函数
{
int a[10][10]=;
int i,j,n=0;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
{
if(g_land[i][j]=='+')
{
if(g_land[i+1][j]=='@')n++;
if(g_land[i+1][j+1]=='@')n++;
if(g_land[i+1][j-1]=='@')n++;
if(g_land[i][j+1]=='@')n++;
if(g_land[i][j-1]=='@')n++;
if(g_land[i-1][j]=='@')n++;
if(g_land[i-1][j+1]=='@')n++;
if(g_land[i-1][j-1]=='@')n++;
if(n==3)
a[i][j]=1;
}
else if(g_land[i][j]=='@')
{
if(g_land[i+1][j]=='@')n++;
if(g_land[i+1][j+1]=='@')n++;
if(g_land[i+1][j-1]=='@')n++;
if(g_land[i][j+1]=='@')n++;
if(g_land[i][j-1]=='@')n++;
if(g_land[i-1][j]=='@')n++;
if(g_land[i-1][j+1]=='@')n++;
if(g_land[i-1][j-1]=='@')n++;
if(n<4&&n>1)
a[i][j]=1;
}
}
for(i=1;i<9;i++)
for(j=1;j<9;j++)
{
if(a[i][j]==0)
g_land[i][j]='+';
else
g_land[i][j]='@';
}
cout<<g_land<<endl;
}
void Judge()
{
int k,m,n=0;
for(int i=1;i<9;i++)
for(int j=1;j<9;j++)
if(g_land[i][j]=='@')
n++;
if(n==0)
{
cout<<"您的田地处于消亡状态,请选择是否重新开始游戏,若是请选择0,若不是选择1"<<endl;
cin>>m;
if(m==0)
Init();
else
cout<<"游戏结束"<<endl;
}
else if(n!=0)
{
cout<<"请问您要继续繁衍还是重新开始?继续请选择0,重新开始请选择1"<<endl;
cin>>k;
if(k==0)
Grow();
else
Init();
}
}
void main()
{
cout<<"这是一个关于进化的仿真游戏。您在一块地里播上种子,然后可以观察生命在这块地上的繁衍过程。"<<endl;
Init();
Plant();
Grow();
Judge();
}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询