[分享] C語言教學

看板C_and_CPP (C/C++)作者 (Victor)時間13年前 (2011/10/13 03:08), 編輯推噓15(15089)
留言104則, 21人參與, 最新討論串1/1
因為這學期有帶一堂計概實習的課 課本不是我選的,看起來對於學生們學習起來是很有難度的 為了能讓同學易懂,我就想說自己寫一份教學 之前就有寫過一份,但沒有很完整,有想要重寫的想法 就重新寫過了一份,基本上盡量會寫得非常詳細 會跟著我們上課的進度慢慢寫,目前也還不算完成 網址為 http://c-lang.ez2learn.com 如果有發現任何錯誤,或是建議,很歡迎來跟我說 -- Now.in 網路廣播電台平台 http://now.in 易記學 程式設計教學 http://ez2learn.com/ VICTOR's 個人Blog http://blog.ez2learn.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.205.245

10/13 09:18, , 1F
讚!
10/13 09:18, 1F

10/13 10:42, , 2F
10/13 10:42, 2F

10/13 16:24, , 3F
一個無關緊要的小錯誤:An apple a day keep"s" the ...
10/13 16:24, 3F

10/13 16:26, , 4F
基本輸出-語法那頁:蘿"蔔";參數是用"帶"or"代"?
10/13 16:26, 4F

10/13 16:27, , 5F
我這樣會不會太吹毛求疵?XD
10/13 16:27, 5F

10/13 16:30, , 6F
怎麼是用dev?還有很多更好的...
10/13 16:30, 6F
為什麼用Dev C++... 因為我只是助教= = 我有跟我們開課的老師講過 但他指定要Dev C++ 我也很無奈 ..╮(﹋﹏﹌)╭.. 加上教室灌的都是 Dev C++.. 還是4.9.9.2 真的很無言 記得上次要解釋程式怎樣運作給同學看 開debugger一跑... crash 再跑 crash 再跑一次 還是crash 完全沒辦法= =|| 新版的debugger好一點 但是 還是有不少鬼打牆問題 你debugger按下一行 有時它不會顯示出來 真的很囧

10/13 16:37, , 7F
最近一直看到Dev-C++根本不曉得是什麼XD
10/13 16:37, 7F

10/13 16:38, , 8F
看來我剛好錯過這十年Dev++起來又沒落的時間..
10/13 16:38, 8F

10/13 16:43, , 9F
五年前我是用dev寫程式的
10/13 16:43, 9F

10/13 17:38, , 10F
dev在學校還是很紅啊xd
10/13 17:38, 10F

10/13 18:18, , 11F
VC++ Express不會比較好用嗎
10/13 18:18, 11F

10/13 18:19, , 12F
至少debugger對初學來說親切太多了
10/13 18:19, 12F

10/13 18:21, , 13F
code::blocks也不錯用 最噁心的仍然是那eclipse
10/13 18:21, 13F

10/13 18:21, , 14F
不過eclipse一些功能對C/C++支援度好像不是很高= =??
10/13 18:21, 14F

10/13 19:13, , 15F
10/13 19:13, 15F

10/13 19:38, , 16F
可是eclipse只是IDE,compiler不是也用mingw?
10/13 19:38, 16F

10/13 19:49, , 17F
dev-c++ 不也這樣嗎?
10/13 19:49, 17F

10/13 19:53, , 18F
對啊所以不曉得上面說的對C/C++功能支援度是什麼問題
10/13 19:53, 18F

10/13 19:53, , 19F
compiler feature來說都支援到gcc 4.x應該還好吧
10/13 19:53, 19F

10/13 19:56, , 20F
eclipse 還可以 Refactor 的樣子
10/13 19:56, 20F

10/13 20:13, , 21F
自動完成跟一些參數查詢總覺得沒有很流暢
10/13 20:13, 21F

10/13 20:13, , 22F
我指的是IDE的輔助功能 跟編譯無關XD
10/13 20:13, 22F

10/13 20:45, , 23F
C++ 的語法有些缺陷,導致這類自動完成的功能不易實做
10/13 20:45, 23F

10/13 20:46, , 24F
相較之下 java 做起來就很容易
10/13 20:46, 24F

10/13 20:47, , 25F
VC 的蕃茄就真的很強大,雖然偶爾也有小問題
10/13 20:47, 25F

10/13 21:02, , 26F
蕃茄的自動完成比 VC 本體還強幾百倍呀
10/13 21:02, 26F

10/13 21:05, , 27F
蕃茄根本就是有毒,用過會忘了程式怎麼打.....
10/13 21:05, 27F

10/13 21:14, , 28F
!! 自從我掛了 VAX 後, 我都忘了原本 VC tips 做很差..
10/13 21:14, 28F

10/13 22:43, , 29F
話說,為什麼用vc建的專案,裡面會一堆東西?不能像
10/13 22:43, 29F

10/13 22:43, , 30F
cb一樣簡潔?
10/13 22:43, 30F

10/13 22:44, , 31F
看你開什麼專案吧?可以直接從空專案開始建
10/13 22:44, 31F

10/13 23:14, , 32F
我都是開命令列的那個,感覺專案資料夾內都會有一堆
10/13 23:14, 32F

10/13 23:14, , 33F
開空的在資料夾內東西就比較少了?
10/13 23:14, 33F

10/13 23:38, , 34F
Eclipse 可以支援其他的 compiler 啊
10/13 23:38, 34F

10/13 23:39, , 35F
toolchain 要選就是了
10/13 23:39, 35F

10/14 01:48, , 36F
用 vim 的路過~
10/14 01:48, 36F

10/14 02:48, , 37F
推vim+gcc
10/14 02:48, 37F

10/14 08:47, , 38F
蕃茄是什麼? 如果gnu的gdb能讓c++的參數漂亮化.我會更愛
10/14 08:47, 38F
還有 26 則推文
還有 2 段內文
10/17 15:52, , 65F
如果只侷限於command line我還是覺得VC++ Express更優越
10/17 15:52, 65F

10/17 15:59, , 66F
傳統的教學理念其實我也能理解
10/17 15:59, 66F

10/17 15:59, , 67F
就是不要讓學生接觸太多語言本身以外的東西
10/17 15:59, 67F

10/17 16:00, , 68F
所以都一直侷限在用stdio在寫程式
10/17 16:00, 68F

10/17 16:00, , 69F
不過當年唸完資訊就覺得這種學習法非常的無聊又沒成就感
10/17 16:00, 69F

10/17 16:01, , 70F
除了解題以外平常哪會寫一堆stdio程式
10/17 16:01, 70F

10/17 16:02, , 71F
有一段時期有些學校改採Java來上程設課我就覺得不錯
10/17 16:02, 71F

10/17 16:02, , 72F
你一開始寫出來的程式就有相對比較rich的UI,也比較實用
10/17 16:02, 72F

10/17 16:04, , 73F
來唸資訊系的學生不是每個人一開始就很有興趣寫程式
10/17 16:04, 73F

10/17 16:04, , 74F
那些很有興趣寫程式的也不必你來教
10/17 16:04, 74F

10/17 16:09, , 75F
講到Java可能有點離題,不過我覺得一開始就要學對的
10/17 16:09, 75F

10/17 16:09, , 76F
2011年早就沒幾個人還在用cout,都要用wcout
10/17 16:09, 76F

10/17 16:09, , 77F
mingw根本不支援wcout
10/17 16:09, 77F

10/17 16:10, , 78F
幹嘛要讓學生學了好多年deprecated的mbcs之後
10/17 16:10, 78F

10/17 16:10, , 79F
等遇到問題才要重學再習慣一次wide char?
10/17 16:10, 79F

10/17 16:14, , 80F
不過學校的老師到底有沒有跟上這個世界的腳步也是問題就是了
10/17 16:14, 80F

10/17 23:38, , 81F
現在哪個 OS 的 console 有支援 wcout ?
10/17 23:38, 81F

10/18 08:46, , 82F
windows
10/18 08:46, 82F

10/18 08:47, , 83F
其它平台管不著,但是dev c++也是win底下的
10/18 08:47, 83F

10/18 08:48, , 84F
甚至現在cygwin 1.7也可以用到完整的utf-8函數再幫你接到系
10/18 08:48, 84F

10/18 08:49, , 85F
統的unicode去
10/18 08:49, 85F

10/18 08:49, , 86F
mingw完整性差太遠
10/18 08:49, 86F

10/18 08:54, , 87F
而且我不太相信現在linux的terminal都utf8 ready那麼多年還
10/18 08:54, 87F

10/18 08:54, , 88F
不能wcout
10/18 08:54, 88F

10/18 21:31, , 89F
那我建議你可以去試試看 ...
10/18 21:31, 89F

10/18 21:33, , 90F
wide stream 的問題很麻煩
10/18 21:33, 90F

10/18 21:42, , 91F
唔 ... 我用 VC2010 的 wcout 也印不出來 QQ
10/18 21:42, 91F

10/18 21:44, , 92F
因為你印的不是wide char吧
10/18 21:44, 92F

10/18 21:45, , 93F
std::wcout << L"test" << std::endl;
10/18 21:45, 93F

10/18 22:11, , 94F
奇怪,加L反而印不出來 std::wcout << L"許功蓋\n";
10/18 22:11, 94F

10/18 23:23, , 95F
抱歉我發現VC++ Express要完整處理這樣的問題還是有障礙
10/18 23:23, 95F

10/18 23:23, , 96F
必須灌platform sdk或有MFC,增加一些定義才有辦法
10/18 23:23, 96F

10/18 23:51, , 97F
其實反過來我發現在Linux底下還比較簡單
10/18 23:51, 97F

10/18 23:51, , 98F
主要就是要用imbue和locale
10/18 23:51, 98F

10/18 23:52, , 99F
但是windows如果不在managed的環境下
10/18 23:52, 99F

10/18 23:52, , 100F
console其實是沒辦法直接unicode出來的,my bad
10/18 23:52, 100F

10/18 23:53, , 101F
imbue切換locale之後如果轉不到target locale會印不出
10/18 23:53, 101F

10/18 23:56, , 102F
主要的關鍵看來還是VC++的c/c++ library函式庫還是有缺陷
10/18 23:56, 102F

10/18 23:56, , 103F
過去使用WriteConsole這類的api函式就都不會有問題
10/18 23:56, 103F

10/18 23:56, , 104F
因為就真的可以直接寫入utf-16le
10/18 23:56, 104F
文章代碼(AID): #1EbUMtjf (C_and_CPP)
文章代碼(AID): #1EbUMtjf (C_and_CPP)