切換
舊版
前往
大廳
主題

C++程式語言 1─Hello World。輸出指令、換行符號

LinYa | 2018-07-28 16:23:29 | 巴幣 6 | 人氣 8524

程式語言 前言
有錯都歡迎大家留言來鞭!!
同時也讓我更加理解我誤解的地方。

文章會盡量以白話、口語化的方式將我理解的撰寫,
想要口語化就會廢話很多,
又或是基於簡單理解(不多解釋)
而出現舉例不正確的狀況,
還請鞭小力一點。

〆程式語言-工具軟體

如同上一篇程式語言 口語化概述所言,
要跟電腦溝通就需要「編譯器(compiler)」。

就像你要聽音樂(mp3)
也需要播放器(Windows Media Player)播放一樣。
(音樂播放器很多,看使用者習慣會使用不同的播放器。但功用都是"播放音樂"。)

所以第一個動作就是找到免費的C++的編譯器,
讓我們的學習不需要金錢成本。
我使用的是「Dev-C++(在Windows系統使用的)」

我不做Dev-C++下載、安裝、設定教學,網路上很多可以多爬文。
發文重點落在撰寫上面。

〆C++語言能做什麼
學習 程式語言 通常都是從「它能做什麼」開始慢慢去摸索。
所以大多教學都是直接透過一步一步教學,實做的方式來慢慢帶入。

先來看看入門最經典的範例:
#include<iostream>
using namespace std;

int main()
{
cout <<"Hello, World!";
    return 0;
}














編譯器中會用顏色來區隔每個元素,增加可讀性
(綠色、橘色、桃紅色分別代表不同的元素)

現在這個程式碼完全看不懂是正常的,
尤其是不會英文的人

C++的基本架構(這個語言的語法)
#include<iostream>
using namespace std;

int main()
{
123456789
    return 0;
}













大多數編譯的程式碼,都在【12345679】裡面發生(注意:只是大多數!)
每個字都有它代表的意義,在我們完全理解之前。
請先傻瓜式的"一律複製貼上"。


〆輸出指令【cout<<
而經典例子中會看到【12345679】的地方,
輸入了【cout<< "Hello, World!";】這一串神秘的東西。

強行解釋一番:
cout<<】是印出的意思,讓程式輸出<<後的內容
C++中的英文大小寫有分(是不同的)。
所以不會是 Cout<< 或 cut<<或 cout< 或 cout>>。
"Hello, World!"】顯示"___"內之間的*字串
;】代表這行程式碼結束。
少一個字、打錯字串符號,或是字串放在基本架構以外,程式就會出現錯誤。


所以經典例子中,
輸出結果是「Hello, World!」。
(在各個程式語言中,永遠的Hello, World!)

Dev-C++中則是可以使用 中文,
輸入韓文、日文則是會出現無法識別的「?」。

嘗試看看輸出中文的
我是___,這是我的c++練習。




編譯答案:
────────────────────
#include<iostream>
using namespace std;

int main()
{
cout <<"我是___,這是我的c++練習。";
    return 0;
}

────────────────────

有沒有開始了解一點C++的超級基本的架構呢?!



換行指令 【endl】、【"\n"】
只要基本架構有、元素都編譯正確,就可正常運作程式。
所以其實全部黏在一起,程式也是能判別的。(可以自己嘗試看看)

────────────────────
#include<iostream>
using namespace std;int main(){cout <<"我是___,這是我的c++練習。";    return 0;}
────────────────────

即便如此,由於一來可讀性不高、二來程式碼越寫越多,當出現bug你也不知道從何找起。
所以在編譯器中的"換行",只是為了排版,讓編譯者更適合閱讀

你輸出的內容需要換行則需要 換行指令 endl 或 使用 \n 字元
*"  "字串符號'  '字元符號

C++的設計中將
\n 放在' '字元符號內 會自動編譯成 換行
前面說過 "  "裡面是字串,要使用 \n 作換行使用 就要放在字串" "裡面內當成字元才行。
(不放在"  "或是'  '裡,編譯器就不認識)

C++設計中
<<endl;】指令 其實等於 << '\n' <<flush;
理論上 "\n" 跑程式比 endl 快,背後演算先不多解釋。
我個人若非必要,換行都會使用\n。

以下有幾種狀況,都是同樣 輸出換行的結果
────────────────────
第一種、
cout <<"我是___,"<<endl;
cout <<"這是我的c++練習。"<<endl;

意思是「印出第一行、換行 更新緩存區 印出第二行、換行 更新緩存區」。

第二種、
cout <<"我是___,"<<endl<<"這是我的c++練習。";

意思是「印出"___" 換行 更新緩存區 印出 "___"」。

第三種(差的寫法)、
cout <<"我是___,"<<"\n"<<"這是我的c++練習。";

跟第二種endl的用法一樣,但通常不會這樣寫。
(因為三個 "  " 都是字串,特地區隔開來是多此一舉脫褲子放屁)

第三種(好的寫法)、
cout <<"我是___,\n這是我的c++練習。";

────────────────────
以上三種,輸出結果都是
我是___,
這是我的c++練習。




輸出結果都一樣,唯一有落差的是系統辦別的時間。
就跟我們人讀書一樣,冗言贅字越多、閱讀越慢。

備註
*字元:一個英文字母、數字或其他的符號,我們稱它為字元
*字串:超過一個'字元',都稱為字串

*編譯:之後發文一律都將撰寫程式碼(Code)的過程稱為「編譯」。


所以我下方的這一串
cout<<"寫程式就像寫文章一樣"<<endl;
輸出就是「寫程式就像寫文章一樣

cout<<"寫程式就像寫文章一樣"<<endl;

if(知道文字怎麼寫)
cout<<"文章不一定寫的好"<<endl;
else
cout<<"一定不會寫文章"<<endl;

//你知道文字怎麼寫,跟文章寫的好不好並沒有關聯。

創作回應

Batyz
好文推
2020-07-06 01:28:21
LinYa
謝謝啦<3
2020-07-07 13:51:43

更多創作