---
# System prepended metadata

title: 最基本的輸入輸出

---


# **最基本的輸入輸出**
## 主要的程式架構
#### **先淺淺的寫一小段程式碼**
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
    
    return 0;
}
```
### ==這幾行基本上就是每一個程式都會出現的==
接著我們來分別介紹一下這幾行程式碼的用途吧！

##### #include <bits/stdc++.h>

在這個觀念上我們在程式的一開始是需要先導入函式庫
```cpp=
#include <bits/stdc++.h>
```
這一行就是來導入函式庫的
### 介紹一下一些好用、常用的函式庫
 <bits/stdc++.h> 這個包山包海，我們會用這個
 因爲這個太好用了，所以其他的就不教了，記好這個
 
![螢幕擷取畫面 2025-03-05 122158](https://hackmd.io/_uploads/SJX3-UHjyl.png)
如果沒有加函式庫就會跑出這個

##### using namespace std;
對比一下有沒有寫這行程式碼的差別：
### 有寫
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<"Hello, world"<<endl;
    return 0;
}
```

### 沒寫
```cpp=
#include <bits/stdc++.h>

int main(){
    std::cout<<"Hello, world"<<std::endl;
    return 0;
}
```

對比之後會發現，在輸出這個部分多了一些東西，可能我寫的少，所以看起來差不多，但實作上每一個屬於std命名空間的都需要加上 ==std::==，因此我們在競程會利用 **using namespace std;** 這段來縮短coding時間，但如果你是在使用c++做專案的話就另當別論

##### int main(){  }
這段程式碼就是你一整個程式碼的主要部分
我們稱他爲 **主程式**
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
}
```

主函數最後的**return 0**是用來終止程式的，c++比較沒有嚴格强制，所以可寫可不寫

以上就是cpp最簡單的程式架構了


## 輸入輸出程式
##### 最簡單 平常的輸入輸出
我們最常用的輸入是
```cpp=
   cin>>x;
```
而輸出則是
```cpp=
   cout<<x;
```
這個有一個很好記的方法
c++的首字母，因為**加加**太麻煩了所以只用前面的英文字母，而輸入就是要把東西放進去程式裡，所以**in**程式最後的2個箭頭就是幫助資料輸入，像軌道一樣，接著輸出也是相同概念，in變成out，箭頭轉向

試試題目：
    簡單輸入輸出[a001](https://judge.cchs.chc.edu.tw/ShowProblem?problemid=a001)
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
    string x;
    cin>>x;
    cout<<"hello, "<<x<<endl;
    return 0;
}

```

難一點點的輸入輸出[a012](https://judge.cchs.chc.edu.tw/ShowProblem?problemid=a012)
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
    string x;
    getline(cin,x);
    cout<<"Go, "<<x<<", go go"<<endl;
    return 0;
}
```
難一點點的輸入輸出[a013](https://judge.cchs.chc.edu.tw/ShowProblem?problemid=a013)
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
    string x;
    getline(cin,x);
    cout<<x<<' '<<x<<endl;
    return 0;
}
```
##### 另一個輸入輸出的方法
這個速度比較快（後面會講一個叫時間複雜度的東西，跟那個有關）
但這邊需要一個函式庫
```cpp=
   #include <cstdio>
```

輸入：
```cpp=
   scanf(%d,x);
```
架構是scanf（變數型態，變數名稱）

輸出：
```cpp=
   printf(%d,x);
```

架構跟上面差不多，前面變成printf


==這兩個不可以混用❌==
==這兩個不可以混用❌==
==這兩個不可以混用❌==


## 程式碼結尾
有兩種方法
```cpp=
   cout<<endl;
   cout<<"\n";
```

一個在最後的部分用箭頭輸出endl（end of line簡寫）
另一個可以直接放在string(字串)的結尾，就不用多放後面的 **<<**

## 簡單介紹變數（下堂課會更深入的介紹）

整數 int
更大的的數字 long long
小數 float
精確小數（15位） double
字串 string
字元（只有一個字母或數字） char
布林值 bool