2016-11-03 25 views
0

我需要在Turbo C++中獲取代碼。但數據類型string不起作用; 使用命名空間std給出編譯器錯誤,如果沒有它,我不能使用string。即使std::string也不起作用。Turbo C++的字符串問題

它在Code :: Blocks中工作得很好,但我希望它能夠在Turbo C++中工作。我知道Turbo是一個非常古老的編譯器,我應該使用新的編譯器。但這是一個大學項目,必須在Turbo C++中完成。有什麼方法可以使它在Turbo C++中工作嗎?

+12

Turbo C++ *古老*,古老。最重要的是它是在C++被標準化之前,因此沒有標準頭文件或標準名稱空間。如果您需要使用Turbo C++,那麼您需要了解預標準類和標題。從1990年代初到中期,你最好的機會是拿起一本舊書。然後你必須接受這樣的知識,即你學到的東西大部分未來都不會有用,這將浪費時間。 –

+0

我知道我必須做一些誰想要它在渦輪增壓C++ – user49557

+0

@喬治是我做了這項工作 – user49557

回答

-1

確定後,無死角的地段,我發現他們的方式
Unforutantely你不能使用字符串和其他類似數據類型,因爲他們甚至沒有Implenented當時
事情你需要做的我用什麼來做到這一點之前,時間
是使用字符數組而不是字符串,並litteraly創建相關的功能,

現在字符數組有很多限制,並且原因字符串被實施的問題。但你有如果你想比較,你必須環路2個字符數組並加以比較 寫字符數組functons以同樣的方式串一書的劃痕

兩個複製它們,你必須循環並加以比較 會是豆蔻複雜,但是那是爲我工作

如果需要

3

這種取決於你擁有的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。

2

Turbo C++不支持命名空間。

我認爲你需要包括cstring.h而不是使用任何命名空間,甚至不使用using指令。

#include <cstring.h> 

而且我不認爲它也支持模板。

+0

'cstring'服務於空字符串(又名C字符串),而不是'std :: string'。 OP可能不得不重寫整個代碼來使用C字符串而不是'std :: string'。 – Melebius

+2

@Melebius - cstring.h,不是cstring。 – user93353

+0

我很確定它是string.h。 cstring.h不會給你std :: string。 – Lundin

1

絕對沒有辦法讓現代C++代碼按原樣工作在Turbo C++中。很多都需要重寫。

turbo C++中沒有std ::。沒有名字。沒有模板。我們所知道的標準庫很少。基本上你必須忘掉大部分你對C++的瞭解。類和functiins主要做的工作。如果您使用#include <iostreams.h>(請注意.h)並省略std::,則Iostreams可能會稍微有效。否則,你幾乎侷限於C標準庫。

如果你需要一個字符串類,你可能必須自己做。

仔細閱讀內置的幫助文檔,檢查附帶的示例程序,並且您可以將其關閉。

請注意,產品的更高版本(不稱爲Turbo C++ IIRC,而是Borland C++或Borland Builder)已經改進了對C++ 98的支持,包括標準庫。

-1

代替字符串的可以使用的字符數組我能給示例代碼的某些任務的最佳方式。例如,我們需要將變量str聲明爲一個字符串。它可以簡單地做到:

char a[10]; // the 10 is the size of the array. 

包含一個單獨的頭文件以使用庫函數。