作者stupid2 (笨笨鳥慢慢飛)
看板C_and_CPP
標題[問題] cstdlib相關問題
時間Wed Sep 1 09:20:25 2010
( *[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
→ loveme00835:1.裡面的字串就是你要下的系統指令, 平台不一樣, 達成 09/01 09:43
→ loveme00835:同樣功能的指令也不同, 像清除文字linux下是用clear 09/01 09:43
→ loveme00835:平常不開程式, 也可以用命令提示字元(cmd)自己下下看 09/01 09:45
→ james732:第二個問題要視你的compiler而定 有些可能會自己加 09/01 10:25
推 lausai:不include而使用function 只有回傳int的函式才可 #19ildeDh 09/01 14:46 → tinlans:<cstdlib> 是 C++ 的,不太可能沒直接或間接 include 09/01 14:52
→ tinlans:還能用。你可以先檢查看看你還有 include 什麼 header。 09/01 14:52
→ tinlans:另外 header != library,早點分清楚免得成大患。 09/01 14:53
→ loveme00835:有一個認識的一直把#include 解釋成「宣告標頭檔」... 09/01 14:55
→ loveme00835:到現在大四了還沒辦法接受正確觀念...這來得及嗎? 09/01 14:56
→ tinlans:心態正確的話,永遠都來得及。反之則一開始就來不及了。 09/01 15:00
→ loveme00835:> < 09/01 15:01
→ stupid2:看到t大的回覆突然閃了一下~~library是什麼??? 09/01 15:36
→ stupid2:header=標頭檔??? 09/01 15:37
→ nowar100:圖書館 (對不起我來亂的 Orz 通常翻譯是"庫"啦 09/01 15:38
→ nowar100:header file==標頭檔 yes 09/01 15:39
→ james732:library=別人寫好編譯好,你可以拿來利用的程式(這樣嗎?) 09/01 15:42
→ tinlans:library 在台灣習慣翻譯成函式庫。header 是用來 include 09/01 16:06
→ tinlans:的,在 preprocessing 階段就會處理完。library 是拿來 09/01 16:07
→ tinlans:link 的,所以是在 linking 的階段才處理的東西。 09/01 16:07
→ tinlans:應該合格的計概課本都會講到才對,還有一張編譯流程圖。 09/01 16:10
→ james732:不過初學的時候真的搞不清楚 我很久以後才懂...XD 09/01 16:22
→ stupid2:合格的計概課本(驚!)不合格的學生XD 09/01 16:46
→ stupid2:所以~平常在用的iostream.string...這些都是header??? 09/01 16:50
→ uranusjr:是的 09/01 18:44
→ uranusjr:說到這個, 我還是不理解為什麼 C++ 要把 header 的副檔名 09/01 18:46
→ uranusjr:拿掉... 09/01 18:46
→ tinlans:為了對既有程式碼提供 pre-standard C++ 的相容性,有些 09/01 19:16
→ tinlans:環境會保留 .h 版的 C++ header。它的實作方式可能異於 09/01 19:17
→ tinlans:standard version。另一個理由是為了相容既有的 C code, 09/01 19:17
→ tinlans:但又必須做出一個區別來,典型的例子就是 <string.h> 和 09/01 19:18
→ tinlans:<string> 是完全不同的東西。而既有的 C 或 C/C++ 混合的 09/01 19:18
→ tinlans:code 也不可能去用 <cstring>。它的相容前提是不修改舊有 09/01 19:20
→ tinlans:的 code 就能直接編來用。總之因為種種因素,才決定拿掉。 09/01 19:20