在c++中,#include
與#include
的區別:
前者要使用更新的編譯器(其實大部分編譯器都支援,除了某些搞嵌入式的編譯器)。
iostream是c++的標頭檔案,iostream.h是c的標頭檔案。
標準的c++標頭檔案沒有.h副檔名,將以前的c的標頭檔案轉化為c++的標頭檔案後,有時加上c的字首表示來自於c,例如cmath就是由math.h變來的
using namespace std //可以使用std定義的所有類及物件
using namespace std::cout//只使用cout
std::是個命名空間識別符號,c++標準庫中的函式或者物件都是在命名空間std中定義的,所以要使用標準庫中的函式或者物件都要用std來限定。
一般來說,std都是要呼叫c++標準庫時使用。比如:使用標準庫檔案iostream時要寫上std;使用非標準庫檔案iostream.h不用寫。
#include#include//此處去掉.h
usingnamespace std ;
void main()
{ string s;
getline(cin,s);
cout<<"right?"void main()
{ cout<<"right?"一般來說,c++中乙個帶「.h」副檔名的庫檔案,比如iostream.h,在新標準後的標準庫中都有乙個不帶「.h」副檔名的相對應,區別除了後者改進很多之外,還有一點就是後者很多東西都定義在「std」名字空間中。
但string比較特別。問題在於c++要相容c的標準庫,而c的標準庫里碰巧也已經有乙個名字叫做「string.h」的標頭檔案,包含一些常用的c字串處理函式,比如strcmp。 這個標頭檔案跟c++的string類半點關係也沒有,所以並非的「公升級版本」,它們是毫無關係的兩個標頭檔案。
#include #include usingnamespace std;
或者 #include #include //其中是與c標準庫的相對應,但裹有std名字空間的版本
是舊的c 標頭檔案,對應的是基於char*的字串處理函式;
是包裝了std 的c++標頭檔案,對應的是新的string 類;
是對應於舊c 標頭檔案的std 版本。
是c++ 的標頭檔案,其內包含了乙個string類,string s1就是建立乙個string類的物件 。
的c語言的東西並無類,所以不能 string s1 。
string與string標頭檔案
先來段 我是在vs2012上實驗的 include stdafx.h include include include using namespace std int tmain int argc,tchar argv cout endl for rit mapstudent.rbegin rit m...
string標頭檔案與cstring標頭檔案
首先說string的標頭檔案 1 包裝了std的c 標頭檔案 2 舊的c標頭檔案 3 舊c標頭檔案的std版本,切記,這不是cstring的標頭檔案 詳見effective c 的第49條 再說cstring的標頭檔案 注 vc9編譯環境下 1 非mfc版本,控制台程式就用這個 2 mfc版本,需要...
類實現string與string標頭檔案
首先宣告,我是乙個菜鳥。一下文章中湧現技術誤導情況蓋不負責 先來段 我是在vs2012上驗實的 include stdafx.h include include include using namespace std int tmain int argc,tchar argv cout endl f...