#include“colour.h”C ++中的致命错误

时间:2014-03-19 15:17:17

标签: c++

我正在尝试编写与康威的生活游戏类似的东西。一切似乎都很好,但我在#include“colour.h”中遇到了致命的错误。代码是用c ++编写的,我知道这个API属于C.我不知道如果它会有所作为,或者我必须使用另一个C ++的API。原因是在我的台式电脑上,我没有必要改变任何东西,程序运行完美。但是当我在我的另一台计算机上运行程序时,它会给代码的第一行(#include“colour.h”)带来致命的错误。我不知道为什么它会给出错误。

请参阅http://en.wikipedia.org/wiki/Conway's_Game_of_Life

 #include "colours.h"
 #include <sstream>   //
 #include <iomanip>   // setw()
 #include <windows.h> // setConsoleTitle(), Sleep()
 #include <cstdlib>   // rand(), seed()
 #include <iostream>  // cout

 using namespace std;

 // OUR DATA and CONSTANTS
 const char LIFE  = 'L';
 const char BLANK = '.';

 const int N = 20;
 const int M = 20;
 const int NGRID = N*M;
 char world[NGRID];    // will simulate 2-dimenisonal array.

 int loc(int i, int j)
 {
   return i*M+j*sizeof(char);
 }

 void gotoxy(int x, int y, char c)
 {
  world[ loc(x,y)] = c;
 }

   // OUR FUNCTIONS (ie, TOOLS) that work on our DATA
  void fillWorldwith(char w[], const int N, const int M, const char stuff){
  for(int i=0; i<N; i++)
  for(int j=0; j<M; j++)
  w[loc(i,j)]=stuff;
 }

 void displayWorld(char *w, const int N, const int M){
 for(int i=0; i<N; i++)
 {
  for(int j=0; j<M; j++)
  cout << setw(2) << w[loc(i,j)];
  cout << endl;
 }
 }

  // Used in applyRules as a buffer to update world.
  void copyWorld(char dest[], char src[], const int N, const int M){

    for(int i=0; i<N; i++)
     for(int j=0; j<M; j++)
      dest[loc(i,j)]= src[loc(i,j)];
  }


int main()
{
  SMALL_RECT windowSize;                              // windows
  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);  // windows

  windowSize = {0, 0, 200, 200};
  SetConsoleWindowInfo(hConsole, TRUE, &windowSize); // windows
  SetConsoleTitle("Game of Life");                   // windows

  system("cls");               // clear the console

  stringstream ss;  // trick to combine string and numbers
  ss << "color " << Black << Yellow;

  // objects are fun to use.
  system( ss.str().c_str() );   // change console colour

  fillWorldwith(world, N, M, BLANK);     // fill whole world with BLANKS
  displayWorld(world, N, M);
  int x=0, y =0;
   for(int time=0; time<100; time++){  // each loop, considered time.
   system("cls");
   displayWorld(world, N, M);              // display world
   gotoxy(x, y, BLANK);
   x= (x+1)%N;
   y= (y+1)%M;
   gotoxy(x, y, LIFE);
   Sleep(50);

  }

  return 0;
 }

2 个答案:

答案 0 :(得分:1)

colours.h不是标准的包含文件,因此问题是它在其他计算机上不可用。您需要安装提供它的软件(如果它是您自己创建的文件,则将其复制到那里)。

答案 1 :(得分:0)

您必须正确指定编译器的默认包含目录,或将colours.h文件放在与其他文件相同的目录中。