Dev C++ 教學 Hello World程式講解(基本架構、顯示文字)
Hello World程式講解
我們已經知道這個程式會在螢幕上面顯示了,
接下來為大家講解一下上面寫的到底是什麼東西。
這張圖是是上一回所建立的程式。
這個檔案其實也可以用記事本開啟,不過就不會像上圖一樣幫你標顏色,這個是Dev C++這類開發工具的優點之一。
本章節包含
1.程式周圍標記-檔案名稱、行數
2.標頭檔案引用-加入需要的功能
3.主程式的結構
4.主程式的內容-顯示文字(輸出文字)
以下正文:
1.程式周圍標記-檔案名稱、行數
程式周圍的標記
首先,左上角的標籤,寫的是main.cpp,代表我們目前看的檔案的名稱,
以後有多個檔案的時候,可以同時開啟,按標籤切換。
左邊的123456,代表目前的行數,就算整行都空白,也算一行。
2.標頭檔引用-加入需要的功能
#include是什麼?
接下來講一下上面綠色的#include <iostream>
(include是包含的意思,io是input輸入和output輸出的意思,而sream是串流的意思。)
那為什麼要加這一行呢?
我們先想一下,假如我們要寫作業,筆是一開始就在桌上的嗎?不是的話,是不是得先拿出鉛筆盒,打開後拿出筆,才能開始寫作業,對吧。
程式的功能也是一樣,因為第四行的cout功能不是C++程式預設就能用的,他是放在iostream這個標頭檔*1裡面,包含一些功能(假如有一系列的這功能,就會稱作函式庫)裡面,所以要先加上#include <iostream>這一行,跟他有關的功能才都能用。所以得先包含函式庫,才能使用裡面的功能!
不加會發生什麼事情呢?
假如把上面的#include <iostream>刪掉,再按F11執行,就會發現出現以下的結果:
反白的部分就是告訴你出錯的行數,所以現在是第五行錯了。
然後最下面的"訊息",
第一行顯示In function 'int main(int, char**)': *2
表示發生錯誤的範圍
第二行有顯示[Error] 'cout' is not a member of 'std' *3
表示發生錯誤的原因
DevC++想要打開工具箱看裡面有沒有cout這個工具,
結果卻找不到,因為你根本沒有把工具箱拿出來(把iostream這個工具箱include進來)
第三行顯示recipe for target 'main.o' failed *4
代表製作程式的過程失敗了
所以最下面的訊息,是提示我們如何修改程式的東西,往後會再陸續講解各種提示的看法。
3.主程式的結構
程式開頭
接下來這一串 int main(int argc, char** argv) 雖然看起來有點長,其實很簡單。
假如我們今天叫人做事,只有跟他說,做就對了,很可能他會做錯,
程式也是一樣,所以我們今天定一個叫做main的東西,程式只要找到main,他就知道這個是入口,他要從這邊開始做,他就不會搞錯了!(main是主要的,表示程式主要進入點)
main後面括號裡的東西
main後面括號裡面的東西看起來很複雜,我們現在也不會用到,他是用來給程式傳參數進去用的。
main前面的東西
main前面的int是代表傳回型態。就跟我們交代人做事一樣,希望他給我們整理好怎麼樣的資料。(int是integer的縮寫,代表是整數)
不過這邊因為沒有要求他算什麼數字,也沒有其他程式要跟他合作,他不需要把算出來的結果傳給其他人,所以可以不用管。
main的範圍
也可以這樣寫:
以上兩種方式,第一種可以少一行,第二種有多層括號的時候比較清楚。
第三行最後一行的上大括號{,和第五行一開始的下大括號}。
就是代表main這個函式*5的範圍,所以他會從第三行跑到第五行後結束。
摺疊展開程式範圍
假如之後除了main以外,還有其他的函式,我們可以像下圖一樣點選旁邊的框,去開啟或關閉,比較好看程式。
4.主程式的內容
main的裡面(程式最重要的部分)
接下來讓我們看第四行 也就是 std::cout << "Hello world!\n"; 這一行
首先是std::cout,為什麼前面要有std::去連接呢?
就像人類的姓氏一樣,萬一你只叫小明,可能班上的王小明、李小明,全部都回過頭來看你。所以我們必須限定,我們要的cout是std裡面的cout。
前面的include是把工具箱拿到桌子上,std::就是把工具箱打開!
那std裡面的cout他的功能是什麼呢?
他是C++標準輸出,可以印出螢幕上的字,不過你給先給他串流資料*6。
那要怎麼給他串流資料呢?就是用<<,也就是兩個小於的符號,代表把右邊的資料串流給做邊的cout使用。這樣子cout拿到以後,就可以發揮他的能力。
cout功能所需的資料串流
好,讓我們看看他到底拿到了什麼:
<<的右邊是"Hello world!\n",首先,左右兩邊的雙引號",代表這從第一個引號"到第二個引號"開始,中間的都是字串,意思就是,他們都是字,不是數字,這邊看不太出來到底差在哪裡,等到之後我們看看1和"1"的時候,就發現有差了。
所以這邊cout會透過<<符號,接受到"Hello world!\n"這一串字,並且把他印在螢幕上。
字串中的特別符號
等等,我們是不是還漏了什麼?
對,我們這一對雙引號之內,還有一個\n,他是代表換行的意思,所以等於印完Hello world!後,電腦幫你按下一次Enter換行,幫助排版用。
程式每一行的結尾符號
還有一個是,有沒有看到這一行最後面有一個 ; 分號?他是告訴程式看到他,就跑完這一行了,也就是結尾符號
本回講解到此,可以練習把雙引號裡面的字換成別的東西,再按F11(編譯並執行)看看,會發生什麼變化呢?
接下來可以看一下C++可以寫哪些程式: