---
# System prepended metadata

title: Computer Programming (C & C++)

---

# Computer Programming (C & C++)

>內文目前採用于天立教授教課內容
>[查詢各種標頭檔](https://www.cplusplus.com/reference/)
---
## 9/28

C: general structure and output
---
```c=
#include <stdio.h>
#include <stdlib.h>

int main() {
    printf("Hello, world.\n");
    return EXIT_SUCCESS;
}
```
上方為 C 的語法。每一個新的指令都需要以`;`分開。
其中`<stdio.h>`為 Standard Input Output 的資料庫，其提供的輸出函數為`printf()`。而`<stdlib.h>`則提供了`EXIT_SUCCESS`。

`\n`表示換行，在 C++ 中使用`std::endl`也有同樣的效果，可看後方例子。
:::    warning
其實`\n`與`endl`表現上一樣但概念有點不同:
1. `\n`只是單純的換行，`cout`裡一樣可以使用。
2. `std::endl`則是把被開啟的一個`cout`的【流】給關掉
可以把`cout`想成一個分液漏斗，`\n`只是暫時把漏斗關上，移到一個新的容器上方再打開，`std::endl`則是直接把漏斗清空回收。<!--謝謝林奕樺的補充~~-->
:::

另外，若要在 C++ 中使用`<headfilename>.h`這類 C 語言的資料庫，可以去掉尾綴的【.h】並在前面加【c】。例如：
```cpp=
#include <cstdio>
#include <cstdlib>
```

---

C++: general structure and input/output
---
- Hello World
```cpp=
#include <iostream>

int main() {
    std::cout << "Hello, world." << std::endl;
    return EXIT_SUCCESS;
}
```
`<iostream>`即 input output stream，其中也包含了`EXIT_SUCCESS`等其他函數。
其中，`std::`的作用是指定「命名空間」（Namespace）。由於函式庫龐大，難免撞名，所以可以透過`std::`來指定要取用「Standard Namespace」中的`cout`和`endl`。

然而，一直寫`std::`有夠麻煩的，因此，以上程式也有許多不同的便利寫法。以下提供其中一種。
```cpp=
#include <iostream>
using namspace std;

int main() {
    cout << "Hello, world." << endl;
    return 0;
}
```
指定使用「Standard Namespace」後，就可以直接寫`cout`或`endl`了!

- Area of Circle
```cpp=
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main() {
    float radius;
    cout << "Please enter the radius: ";
    cin >> radius;
    
    float area = radius * radius * 3.14159265;
    cout << "The area of the circle is " << x << endl;
    return 0;
}
```
重點:
1. 使用`using std::cout`的語法，就只會指定`cout`的命名空間，如此一來才不會把所有東西一視同仁，導致日後程式的不清楚。
3. 宣告了 radius 和 area 兩個 **float 浮點數**。
4. `cout <<`後面的小於符號表示導向左邊，而`cin >>`則是導向右邊，進入宣告的變數。
5. 宣告變數的同時，其數值可以數學式表示。
6. `int main(){...}`本身其實是一個函數。此函數的名稱為`main`，其回傳值為`int`(integer整數)。因此，函數最後要有個`return 0;`表示函數的回傳值。

---
## random

[C++: rand() 和 srand() 亂數生成簡略說明和使用方法](/BkxfyKZ4t)


---
聊天區
> 對不起我有點龜毛⋯⋯我幫程式的運算子之間都加上空格了。
> >感謝樓上 :D 送你一隻貓 $=(\hat{\sigma}_x\hat{\sigma})=$
> > > <3

> 這是好習慣，另外中英文之間的空格我也補上去了。
> >你也想要貓嗎? 
> > >好耶>< 
**cute**:heart:
> > > >給給:
\begin{align*}
    &\{\backslash\_/\}\\
    =&(\;\bullet\nabla\bullet)=\\
    c&/>\;\;|
\end{align*}Done


[回到共筆的家](/SytlM43mt)