HelloWorld! C++糾錯版

例題:
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++!";
相關文章
相關標籤/搜索