[問題] cstdlib相關問題

看板C_and_CPP作者 (笨笨鳥慢慢飛)時間15年前 (2010/09/01 09:20), 編輯推噓1(1034)
留言35則, 7人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題:需不需要include<cstdlib> 希望得到的正確結果:只是想要知道原因 程式跑出來的錯誤結果:沒有錯誤啦 開發平台:VC++ 有問題的code:沒有code 補充說明: 我是新手@@ 寫程式時,用到system("pause")或system("cls")這兩個東西 最近想到,這應該是個function吧,然後參數是字串 然後就在想,除了pause和cls還有沒有其他字串可以用 然後就去c++ reference查了一下 結果驚訝的發現,這個function竟然是在cstdlib這個library裡面 可是我以前都沒有include過這個library 然後又發現rand、srand,也在這個library裡面 才回想到當初有同學用到亂數時好像也沒有include<cstdlib> 總結一下@@ 1.system這個function除了pause和cls還有沒有其他的東西可以用啊??? 2.為什麼沒有include<cstdib>卻可以用裡面的東西呢???(compiler會過@@) 感謝觀看,歡迎各位大大解答~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.41.10

09/01 09:43, , 1F
1.裡面的字串就是你要下的系統指令, 平台不一樣, 達成
09/01 09:43, 1F

09/01 09:43, , 2F
同樣功能的指令也不同, 像清除文字linux下是用clear
09/01 09:43, 2F

09/01 09:44, , 3F
windows的指令查詢可以看這個網頁 http://ppt.cc/1Y5w
09/01 09:44, 3F

09/01 09:45, , 4F
平常不開程式, 也可以用命令提示字元(cmd)自己下下看
09/01 09:45, 4F

09/01 10:25, , 5F
第二個問題要視你的compiler而定 有些可能會自己加
09/01 10:25, 5F

09/01 14:46, , 6F
不include而使用function 只有回傳int的函式才可 #19ildeDh
09/01 14:46, 6F

09/01 14:52, , 7F
<cstdlib> 是 C++ 的,不太可能沒直接或間接 include
09/01 14:52, 7F

09/01 14:52, , 8F
還能用。你可以先檢查看看你還有 include 什麼 header。
09/01 14:52, 8F

09/01 14:53, , 9F
另外 header != library,早點分清楚免得成大患。
09/01 14:53, 9F

09/01 14:55, , 10F
有一個認識的一直把#include 解釋成「宣告標頭檔」...
09/01 14:55, 10F

09/01 14:56, , 11F
到現在大四了還沒辦法接受正確觀念...這來得及嗎?
09/01 14:56, 11F

09/01 15:00, , 12F
心態正確的話,永遠都來得及。反之則一開始就來不及了。
09/01 15:00, 12F

09/01 15:01, , 13F
> <
09/01 15:01, 13F

09/01 15:36, , 14F
看到t大的回覆突然閃了一下~~library是什麼???
09/01 15:36, 14F

09/01 15:37, , 15F
header=標頭檔???
09/01 15:37, 15F

09/01 15:38, , 16F
圖書館 (對不起我來亂的 Orz 通常翻譯是"庫"啦
09/01 15:38, 16F

09/01 15:39, , 17F
header file==標頭檔 yes
09/01 15:39, 17F

09/01 15:42, , 18F
library=別人寫好編譯好,你可以拿來利用的程式(這樣嗎?)
09/01 15:42, 18F

09/01 16:06, , 19F
library 在台灣習慣翻譯成函式庫。header 是用來 include
09/01 16:06, 19F

09/01 16:07, , 20F
的,在 preprocessing 階段就會處理完。library 是拿來
09/01 16:07, 20F

09/01 16:07, , 21F
link 的,所以是在 linking 的階段才處理的東西。
09/01 16:07, 21F

09/01 16:10, , 22F
應該合格的計概課本都會講到才對,還有一張編譯流程圖。
09/01 16:10, 22F

09/01 16:22, , 23F
不過初學的時候真的搞不清楚 我很久以後才懂...XD
09/01 16:22, 23F

09/01 16:46, , 24F
合格的計概課本(驚!)不合格的學生XD
09/01 16:46, 24F

09/01 16:50, , 25F
所以~平常在用的iostream.string...這些都是header???
09/01 16:50, 25F

09/01 18:44, , 26F
是的
09/01 18:44, 26F

09/01 18:46, , 27F
說到這個, 我還是不理解為什麼 C++ 要把 header 的副檔名
09/01 18:46, 27F

09/01 18:46, , 28F
拿掉...
09/01 18:46, 28F

09/01 19:16, , 29F
為了對既有程式碼提供 pre-standard C++ 的相容性,有些
09/01 19:16, 29F

09/01 19:17, , 30F
環境會保留 .h 版的 C++ header。它的實作方式可能異於
09/01 19:17, 30F

09/01 19:17, , 31F
standard version。另一個理由是為了相容既有的 C code,
09/01 19:17, 31F

09/01 19:18, , 32F
但又必須做出一個區別來,典型的例子就是 <string.h> 和
09/01 19:18, 32F

09/01 19:18, , 33F
<string> 是完全不同的東西。而既有的 C 或 C/C++ 混合的
09/01 19:18, 33F

09/01 19:20, , 34F
code 也不可能去用 <cstring>。它的相容前提是不修改舊有
09/01 19:20, 34F

09/01 19:20, , 35F
的 code 就能直接編來用。總之因為種種因素,才決定拿掉。
09/01 19:20, 35F
文章代碼(AID): #1CVQfSMN (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1CVQfSMN (C_and_CPP)