在C ++中编译和执行此代码的问题

时间:2014-05-02 19:25:54

标签: c++ borland-c++

我试图在TurboC ++ 3.0中编译this code。但是,我收到了这些错误:

DOS.H 77: Too many types in declaration
DOS.H 77: { expected
DOS.H 77: Declaration does not specify a tag or an identifier
SARSAL.CPP 72: Cannot cast from 'int' to 'time'

我检查了库的目录,我在BorlandC ++ 5.02中运行了代码(遗憾的是,我在方法Constructor cannot have a return type specification中得到了图形错误或错误:void Agente::Agente),DevC ++和Code ::块没有成功。

代码由我们的AI老师提供,据说工作正常。如何编译?

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

我通常不会回答这种帖子(而不仅仅是因为" TurboC ++"问题)但是我们在某些时候都是新手并需要帮助但是没有#39我知道如何要求它,所以我会帮你一把。

首先:不要使用TurboC ++ 。正如其他人所说,这是古老的,需要你学习一种与今天的C ++非常不同的语言,并会教你许多不良习惯(例如#include <iostream.h>这是错误的)

有了这个,让我们开始,好吗?

您定义一个构造函数(在第70行附近)并为其指定返回类型void。这是错误的:构造者没有返回类型。正确的语法是:

Agente::Agente(void)
{
  randomize();
}

也许TurboC ++需要一个返回类型(参见?)或者这可能只是你的错误,但不管怎样,这是一个bug,因为那不是C ++代码。

继续前进,你在第127行有这个:

if((Archivo = fopen("C:\Documents and Settings\ArCiGo\Escritorio\SOFTWARE_2\DATOS.TXT","r"))!=NULL)

字符\在C ++中很特殊(例如\n表示换行符,\x01是值为1的字符。

如果你想使用它,你必须使用另一个\来逃避它:

if((Archivo = fopen("C:\\Documents and Settings\\ArCiGo\\Escritorio\\SOFTWARE_2\\DATOS.TXT","r"))!=NULL)

还有其他地方你做同样的事情。修复这些并再试一次。我打赌你会有更好的运气和更少的错误担心。

为了将来参考,当您正在寻求帮助时,请尝试发布一个简短,展示您所遇到的错误的自包含程序,以便其他人不需要涉及通过数百行代码,并担心缺少头文件和特定于平台的差异。