例題:
1 #include<iostream>
2
3 int main() 4 { 5 cout << "HelloWorel!" ; 6 return 0; 7 }
1 #include <iostream>
2 using namespace std; 3 int main() //c++ programs start by executing the function main
4 { 5 cout << "HelloWorld!\n"<< endl; //output"HelloWorld!"
6 return 0; 7 }
編譯經過。ios
疑問:c++
書上的例題用VC++編譯函數
我在Dev-c++編譯同樣報錯spa
using namespace std;幹嗎用的?爲毛跟書上的列題不同?3d
查查資料後瞭解得知:
#include<iostream.h> 非標準輸入輸出流,這個寫法是之前C語言的寫法,上個世紀八九十年代的書中通常採用這種寫法,如今已經不適用了。
iostream.h時代沒有名詞空間,即全部庫函數包括頭文件iostream.h都聲明在全局域。爲了體現結構層次,避免名字定義衝突,code
c++標準委員會特別引入了「名字空間的定義」,即namespace。引入了名詞空間這一律念,並把全部庫函數聲明由全局域改到了名詞空間std。
因此,新的標準是:blog
1 #include <iostream> //標準輸入輸出流
2 using namespace std;
(由於iostream聲明在std中,故而要加上這句,除非你不用庫函數,不然錯誤); 編譯器
不少編譯器都同時支持這兩種頭文件形式,更好的固然是標準頭文件。至於爲何不廢除非標準頭文件,大概是爲了兼容之前的代碼吧。string
還有一點在標準c++中,全部庫函數都沒有.h後綴了,若是是c語言的庫函數,則去掉後綴,並在開頭加上一個c。
io
以下:
#include cstdio //stdio.h
#include cstring //string.h
使用<iostream>時,引入std::有如下方法:
1 using namespace std; 3 cout<<"Hello c++!"<<endl; 4 5 using std::cout; 6 cout<<"Hello c++!"; 7 8 std::cout<<"Hello c++!";