我正在尝试在TurboC++ 3.0中编译此代码.但是,我收到了这些错误:
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'
Run Code Online (Sandbox Code Playgroud)
我检查了库的目录,我在BorlandC++ 5.02中运行了代码(不幸的是,我得到了图形错误或错误:Constructor cannot have a return type specification在方法中void Agente::Agente),DevC++和Code :: Blocks没有成功.
代码由我们的AI老师提供,据说工作正常.如何编译?
谢谢您的帮助.
我通常不会回答这种帖子(而不仅仅是因为"TurboC++"问题),但我们在某些时候都是新手,需要帮助但却不知道如何要求它,所以我会给你一只手.
首先:不要使用TurboC++.正如其他人所说,这是古老的,需要你学习一种与今天的C++非常不同的语言,并会教你许多不良习惯(例如#include <iostream.h>哪些是错的).
有了这个,让我们开始,好吗?
您定义一个构造函数(在第70行附近)并给它一个返回类型void.这是错误的:构造函数没有返回类型.正确的语法是:
Agente::Agente(void)
{
randomize();
}
Run Code Online (Sandbox Code Playgroud)
也许TurboC++需要一个返回类型(参见?)或者这可能只是你的错误,但不管怎样,这是一个bug,因为那不是C++代码.
继续前进,你有第127行:
if((Archivo = fopen("C:\Documents and Settings\ArCiGo\Escritorio\SOFTWARE_2\DATOS.TXT","r"))!=NULL)
Run Code Online (Sandbox Code Playgroud)
该字符\在C++中是特殊的(例如,\n表示换行符并且\x01是具有值的字符1.
如果你想使用它,你必须用另一个逃避它,\如下所示:
if((Archivo = fopen("C:\\Documents and Settings\\ArCiGo\\Escritorio\\SOFTWARE_2\\DATOS.TXT","r"))!=NULL)
Run Code Online (Sandbox Code Playgroud)
还有其他地方你做同样的事情.修复这些并再试一次.我打赌你会有更好的运气和更少的错误担心.
为了将来参考,当您在寻求帮助时,尝试发布一个SHORT,自包含的程序,它显示您正在获得的错误,以便其他人不需要涉及数百行代码并担心丢失头文件和平台特定的差异.