Nova的科學反主流學院 

反主流的精神在於不屈於大環境, 本站旨在提供輕鬆自學各種科學。

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++可以寫哪些程式:

 

 

*1:原文是header file,代表重要的功能

*2:中文:在main函式內發生錯誤

*3:中文:cout不是std的成員

*4:中文:產生目標程式main.o失敗

*5:函式就是一個名字加上一組大括號,中間可以填多行程式

*6:一連串的資料