本節,我們學習如何在新版 VS 2017 中編寫程式輸出「C語言中文網」,程式程式碼如下:
在 VS 2017 下開發程式首先要建立專案,不同類型的程式對應不同類型的專案,初學者應該從控制檯程式學起。
開啓 VS 2017,在選單欄中依次選擇 「檔案 --> 新建 --> 專案」:
或者直接按下 Ctrl+Shift+N
組合鍵,都會彈出下面 下麪的對話方塊:
選擇 「空專案」,填寫好專案名稱,選擇好儲存路徑,同時對於初學者來說,可取消勾選 「爲解決方案建立目錄」,點選 「確定」 按鈕即可。
注意:這裏一定要選擇 「空專案」 而不是 「Windows控制檯應用程式」,因爲後者會導致專案中自帶有很多莫名其妙的檔案,不利於初學者對專案的理解。另外,專案名稱和儲存路徑中最好不要包含中文。
點選 「確定」 按鈕後,會直接進入專案可操作介面,我們將在這個介面完成所有的程式設計工作。
有興趣的同學可以開啓專案的儲存路徑(本文的專案儲存路徑爲 D:\Demo\),會發現多了一個 Demo 資料夾,這就是儲存整個專案的資料夾。
在 「原始檔」 處右擊滑鼠,在彈出選單中選擇 「新增 --> 新建項」 ,如下圖所示:
或者直接按下 Ctrl + shift + A
組合鍵,都會彈出新增原始檔的對話方塊,如下圖所示:
在此分類中,我們選擇 「C++檔案(.cpp)」,編寫 C 語言程式時,注意原始檔後綴名爲 .c
,點選 「新增」 按鈕,就新增上了一個新的原始檔。
注意:C++ 是在 C 語言的基礎上進行的擴充套件,所有在本質上,C++ 已經包含了 C 語言的所有內容,所以大部分 IDE 會預設建立後綴名爲
.cpp
的C++ 原始檔。爲了大家養成良好的規範,寫 C 語言程式碼,就建立後綴名爲.c
的原始檔。
開啓 hello.c ,將本節開頭的程式碼輸入到該原始檔中,如下圖所示:
注意:雖然可以將整段程式碼複製到編輯器,但是我還是強烈建議你手動輸入,我敢保證你第一次輸入程式碼會有各種各樣的錯誤,只有把這些錯誤都糾正了,你纔會進步。
在上方選單欄中選擇 「生成 --> 編譯」,就完成了 hello.c 原始檔的編譯工作,如下圖所示:
或者直接按下 Ctrl + F7
組合鍵,也能夠完成編譯工作,這樣更加便捷。
如果程式碼沒有任何錯誤,會在下方的 「輸出視窗」 中看到編譯成功的提示:
編譯完成後,開啓專案目錄下(本教學中是 D:\Demo\ )的 Debug 資料夾,會看到一個名爲 hello.obj
的檔案,此檔案就是經過編譯產生的中間檔案,這種中間檔案的專業稱呼是目標檔案(Object File),在 VS 和 VC 下,目標檔案的後綴都是 .obj
。
在選單欄中選擇 「專案 --> 僅用於專案 --> 僅連線 Demo」 , 就完成了 hello.obj 鏈接工作,如下圖所示:
如果程式碼沒有錯誤,會在下方的 「輸入視窗」 中看到鏈接成功的提示:
本專案中只有一個目標檔案,鏈接的作用是將 hello.obj 和系統元件(專業講是靜態鏈接庫)結合起來,形成可執行檔案。如果有多個目標檔案,這些檔案之間還要相互結合。
當你再次開啓專案目錄下(本教學中是 D:\Demo\ )的 Debug 資料夾,會看到一個名爲 Demo.exe
的檔案,這就是最終生成的可執行檔案,就是我們想要的結果。
雙擊 Demo.exe 執行,並沒有輸出「C語言中文網」幾個字,而是會看到一個黑色視窗一閃而過。這是因爲,程式輸出「C語言中文網」後就執行結束了,視窗會自動關閉,時間非常短暫,所以看不到輸出結果,只能看到一個「黑影」。
對上面的程式碼稍作修改,讓程式輸出 「C語言中文網」 後暫停下來:
system("pause"); 的作用就是讓程式暫停一下。注意程式碼開頭部分還新增了 #include <stdlib.h> 語句,否則 system("pause"); 無效。
再次編譯並鏈接,執行生成的 Demo.exe,終於如願以償,看到輸出結果了,如下圖所示:
按下鍵盤上的任意一個鍵,程式就會關閉。
我們把上面的步驟總結一下,可以發現一個完整的程式設計過程是:
不過 VS 提供了一種更加快捷的方式,可以一鍵完成編譯、鏈接、執行三個動作,點選選單欄中的 「本地 Windows 偵錯程式」 按鈕,或者按下 F5
鍵也能做到這一點。
現在,你就可以將 Demo.exe 分享給你的朋友了,告訴他們這是你編寫的第一個 C 語言程式。雖然這個程式非常簡單,但是你已經越過了第一道障礙,學會了如何編寫程式碼,如何將程式碼生成可執行程式,這是一個完整的體驗。
在本教學的基礎部分,教大家編寫的程式都是這樣的「黑視窗」,與我們平時使用的軟體不同,它們沒有漂亮的介面,沒有複雜的功能,只能看到一些文字,這就是控制檯程式(Console Application),它與 DOS 非常相似,早期的計算機程式都是這樣的。
控制檯程式雖然看起來枯燥無趣,但是它非常簡單,適合入門,能夠讓大家學會程式設計的基本知識;只有夯實基本功,才能 纔能開發出健壯的GUI(Graphical User Interface,圖形用戶介面)程式,也就是帶介面的程式。