我需要在Turbo C ++中使用代码。但数据类型string
不起作用;
使用命名空间std
会产生编译器错误,如果没有它,我就无法使用string
。即使std::string
也不起作用。
它在Code :: Blocks中运行得非常好,但我希望它能在Turbo C ++中运行。我知道Turbo是一个非常古老的编译器,我应该使用新的编译器。但这是一个大学项目,必须在Turbo C ++中完成。有没有办法让它在Turbo C ++中运行?
答案 0 :(得分:4)
这取决于您拥有的Turbo C ++版本。一些软件考古学:
3.1以下的古代DOS版本不能很好地支持STL,也不支持#include <string>
。他们使用带有.h扩展程序的预标准包含格式:#include <string.h>
等。尝试添加.h
,您可能会很幸运。
在版本4或5.0左右,他们开始支持#include <string>
标头格式和大多数STL。这些仍然是预标准编译器。
早期版本的Borland Builder中的STL支持仍然存在疑问,直到Builder 5的某个地方。这应该是BCC编译器的5.5左右。
在2005年左右发布的名为Turbo C ++的RAD工具应该完全支持C ++ 98。
答案 1 :(得分:2)
Turbo C ++不支持命名空间。
我认为你需要包含cstring.h
而不使用任何名称空间甚至using
指令。
#include <cstring.h>
我也不认为它支持模板。
答案 2 :(得分:1)
绝对没有办法让现代C ++代码在Turbo C ++中工作。很多都需要重写。
turbo c ++中没有std ::。没有名字。没有模板。我们所知道的标准库很少。基本上你必须忘掉大部分你对C ++的了解。类和函数大多数都可以工作。如果你#include <iostreams.h>
(注意.h)并省略std::
,Iostream可能会有所帮助。否则你几乎只限于C标准库。
如果你需要一个字符串类,你可能需要自己做。
仔细阅读,阅读内置帮助,检查所包含的示例程序,然后您就可以将其关闭。
请注意,该产品的更高版本(不称为Turbo C ++ IIRC,而是Borland C ++或Borland Builder)改进了对C ++ 98的支持,包括标准库。
答案 3 :(得分:0)
我遇到了同样的问题,然后我意识到我忘记了using namespace std
,这解决了所有问题。
答案 4 :(得分:-1)
好的,经过很多麻烦,我找到了方法。遗憾的是,您无法使用string
和其他类似的数据类型,因为当时甚至还没有实施。你需要做以前做过的事情。使用char
数组而不是string
并创建与之相关的函数。
现在char
数组有很多限制和问题,这就是实现string
的原因。但是你必须以char
从头开始编写string
数组函数。{
如果要比较或复制两个char数组,则必须循环并比较它们。这会有点复杂,但这对我来说是最好的方式。
如果需要,我可以为某项任务提供一些示例代码。
答案 5 :(得分:-1)
您可以使用字符数组代替String。 例如,我们需要将变量str声明为字符串。它可以简单地完成:
char a[10]; // the 10 is the size of the array.
包含一个单独的头文件以使用库函数。