[問題] include iostream 跟 iostream.h 的差別

看板C_and_CPP (C/C++)作者 (大狗)時間14年前 (2011/10/16 18:51), 編輯推噓1(1022)
留言23則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 6.0 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 只是一個很單純的Hello問題.. 程式碼是這樣的 : #include <iostream> using namespace std; void main(void) { cout << "Hello!\n"; return; } 這樣是對的.. 但如果只把#include的地方改成 #include <iostream.h> 就會出現 error C2871: 'std' : does not exist or is not a namespace 不太理解為什麼會這樣?? 補充說明(Supplement): 我有google了一下 #include<> 與 #include" "的差別 但我在檔案路徑下並沒有任何.h檔 , 所以我想應該都會去找Include路徑下的檔案吧? 而在VC++\Include路徑下 有兩個名為IOSTREAM的檔案 一個看不出附檔名 , 一個附檔名是.h 難道#include<>加了個.h compiler就找不到了嗎? 感謝各位前輩指點.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.133.177

10/16 18:54, , 1F
#include <iostream.h> using namespace std;
10/16 18:54, 1F

10/16 18:55, , 2F
看到標題就不會想點→進來
10/16 18:55, 2F

10/16 18:55, , 3F
問題是你為啥要加h @@
10/16 18:55, 3F

10/16 18:55, , 4F
iostream.h是很舊的寫法,當時還沒有namespace std
10/16 18:55, 4F

10/16 18:56, , 5F
現在標準的拿掉了.h,但所有的東西都擺進了namespace std
10/16 18:56, 5F

10/16 18:57, , 6F
比較新的編譯器根本沒有iostream.h這個東西了,盡量別用
10/16 18:57, 6F

10/16 18:57, , 7F
因為vc6年代久遠,它才會同時允許兩種寫法
10/16 18:57, 7F

10/16 19:00, , 8F
謝謝 james大以及其他幾位的回答..我是看到一本書上這樣寫
10/16 19:00, 8F

10/16 19:01, , 9F
#include <iostream.h> 但書上並沒有using namespace
10/16 19:01, 9F

10/16 19:01, , 10F
這樣compiler就會是正確的..所以我感到奇怪想來請教一下
10/16 19:01, 10F

10/16 19:03, , 11F
書名:最新C++精選專題實作 博碩出版 書上使用DevC++ 3.95版
10/16 19:03, 11F

10/16 19:03, , 12F
推,老舊編譯器的支援真的是C++包袱沉重
10/16 19:03, 12F

10/16 19:03, , 13F
可不可以砍掉重練阿(怒!)
10/16 19:03, 13F

10/16 19:10, , 14F
我會建議你不要看那本書,換本新一點的吧,對你沒好處
10/16 19:10, 14F

10/16 19:13, , 15F
恩恩..好的 謝謝各位寶貴的意見!!
10/16 19:13, 15F

10/16 23:49, , 16F
iostream.h好像是用gcc編譯的時候才用的?
10/16 23:49, 16F

10/16 23:53, , 17F
不是gcc才用,是古老的編譯器才會用
10/16 23:53, 17F

10/17 10:02, , 18F
1998 ISO C++出來之前大部份的compiler都是支援.h
10/17 10:02, 18F

10/17 10:02, , 19F
這是為了相容性留下來的
10/17 10:02, 19F

10/17 10:04, , 20F
如果這本書沒超過十二年的話就是誤人子弟...
10/17 10:04, 20F

10/17 10:05, , 21F
不過要補充一下,並不是古老的編譯器才能用
10/17 10:05, 21F

10/17 10:05, , 22F
VC++2010還是照樣可以用
10/17 10:05, 22F

10/17 10:06, , 23F
不管是作者自己不懂還是亂教,總之不照標準來就是爛書
10/17 10:06, 23F
文章代碼(AID): #1EchSsNM (C_and_CPP)
文章代碼(AID): #1EchSsNM (C_and_CPP)