---
# System prepended metadata

title: '#include<iostream'

---

# 基本架構
```cpp=1
#include <iostream>           
#include <cstdio>   //使用c語言的標準輸入頭檔
using namespace std;                  
                  
int main()                  
{                 
     int a, b, c;  //宣告3個整數變數         
     scanf("%d%d%d", &a, &b, &c); 
     int min=a;             
     if (b<min) min=b;             
     if (b<min) min=c;             
     printf("%d,%d,%d %d\n", a, b, c, min);             
     return 0;             
}                 
                 
 ```                    
                  
## 標頭檔
1. 屬於前置處理(pre-processor)指令部分
2. 以 # 開頭的指令,結尾不用加上 ;
-例如: #include <iosream>



5.在c++中可使用c的標頭檔,兩種可以混和
-如:  #include <cstdio>

## 基本資料型態 
:::success
資料型態(Data Type):表示占用電腦的記憶體空間的大小
:::
1. char: lbyte,表示電腦的字元(aA~zZ, 0~9)等字元。
2. bool: lbyte(c語言沒此資料型態),用來表示頁(true)與假(false)
-<font color=red>** true: 非的整數**</font> 
- <font color=blue>**false: 數字0**</font>
3. int: 4bytes 表示沒有小數點的數字 
4. float: 4bytes,表示有小數點的數字
5. double: Bbytes 表示沒小數點的數字

:::success
整數的延伸資料型態
:::
1. short int: 2bytes的盤對 
2. Long long: Bbytes的整數
3. unsinged: 只表示正整数             

![](https://hackmd.io/_uploads/rJBasJaeT.png)       
    
:::success    
sizeof(資料型態):取得資料占用型態的記憶體空間    
:::
```
#include <bits/stdc++.h>
using namespace std;  

 int main()   
{    
  printf("char: %d byte\n", sizeof(char));   
  printf("unsigned char: %d byte\n", sizeof(unsigned char));    
    
  printf("bool: %d byte\n", sizeof(bool));    
    
   printf("short: %d byte\n", sizeof(short));   
  printf("int: %d byte\n", sizeof(int));     
  printf("Long long: %d byteln", sizeof(long long));    
 printf("unsigned short: 3d bytein", sizeof(unsigned short));    
  printf("unsigned int: ad bytein", sizeof(unsigned inc));    
    
  float f=1.45;  
  printf("float: %d byte \n", sizeof(float));    
  printf("%.2f: %d byte\n", f, sizeof(f));    
    
  printf("double: %d byte\n",  sizeof(double));    
  // 預設有小樹的數字型態為 double   
  printf("2.5: %d byte \n", sizeof (2.5));     
  printf("Long double: %d byte\n",    sizeof(long double));    
  return 0;  
}    
```
``` 
int: 4   
    
unsigned  
                  
                  
                  
                  
     

```
    
# 字面值(常數值)
    
:::success
字元與字串
:::
1.字元: 一個字,以單引號包起來。例如:'a' 'd'.......
2.字元: 一個字,以單引號包起來。例如:'abc' 'adad'.......   
    
:::success
整數: 沒有小數點的數字
:::    
1. 10進制的數字:由數字$e\sim 9所組成,例如:55,66,77,88......等    
2. 8進制的數字:由數字$e\sim 7$所組成,例如:655,056,612......等,以數字8開頭    
3.16進制的數字:由數字$e\sim 9 英文$a\sim f 或A\sim F$所組成,例如:6x55, 6xab,(6x15......等,以數字0x開頭   
 -數字 10(a), 11(b), 12(c), 13(d), 14(e), 15(f) - $a\sim f$大小寫皆可(不區分)   
4.10進制的數字後面加上L或l:代表為 long型態的整數,例如:55881,5588L    
4.10進制的數字後面加上U或u:代表為 unsigned型態的整數,例如:5588u,5588U    
5. 10進制的數字後面加上U或u:代表為 unsigned 型態的整數,例如:55880, 5588U    
    
:::success    
 2, 8, 16進位轉換方式   
:::    
 1. 短除法   
    
![](https://hackmd.io/_uploads/Sy0dbXag6.png)
    
    
2.拼湊法)    
    
![](https://hackmd.to/_uploads/BkaE47pga.png)    
    
:::success    
浮點數:有小數點的数学   
:::    
1. 科學記號: 格式為xEn    
-x: 整數部分只能有1位數    
    
2. 例如: 16668966555124 = 1.6668966555124e+13    
3. 例如: 8.00016568 - 1.6668966555124e-13    
2. float後面加上 
3. long double 後面加上L或1:55.681   
    
    
C/C++的輸出入:C語言的輸出入速度比C++快很多    
:::    
C輸入: scanf("輸入格式", &變數名稱,...);    
輸入格式 %d:輸入整數數字    
輸入格式 %f:輸入 float小數數字   
輸入格式 $lf:輸入 double小數數字    
輸入格式 %c: 輸入, 字元、    
輸入格式 s: 輸入 字串   
C++輸入: cin>>變數名稱:    
  C輸出: printf("輸出格式", 變數名稱...   
輸出格式(d:輸出整數數字    
輸出格式(c:輸出 字元    
輸出格式s: 輸出 字串    
輸入格式者,nf; 輸出小數點位的小數數字   
    
    
```cpp=1

```       
using namespace std;   
    
int main()    
{    
    // 宣告儲存使用者輸入的3個整數
    int a,b,c; 
   // 讓使用者輸入3個整數的值,分別存入a,b,c中  
    scanf("%d %d %d", &a, &b, &c);
    // 計算總和
    int sum = a+b+c;
    // 計算平均值
   float avg =sum/3;
    //輸出結果
    printf("sum = %d+%d+%d %d\n", a, b, c, sum);
    printf("avg = (%d+%d+%d) / 3 = %.2f\n", a, b, c, avg);
    return 0;
}    
```   
# 變數、常數宣告    
:::success    
變數宣告:資料型態 變數名稱[值];    
:::
 1.位(Overflow):表示的值太大以致資料型態的最大空間無法儲存,造成資料的損失。   
2.一次宣告多個同值型態的變數,每個變數以逗點分隔,例如int a,b,c,d;    
3.變數命名方式    
第一個字: $A\sim Z$, $a\sim z及(底線) 共53個字元/    
第二個字以後;包含所有第一個字及$e\sim 99,共63個字元    
不可為C/C++系統保留字    
    
:::success
常數宣告:宣告後要給值,程式執行過程中不能改變常數的值。    
:::    
1. 語法: const 資料型態 常數名稱=位;   
2. 語法: #define 常數名稱(值)   後面不加分號
3. const double PI=3.14159;    
4. #define PI 3.14159    
5.常數名稱命名方式與變數一樣,為了區分常数名稱全部以大寫表示    
    
# 資料型態轉換    
:::success    
只有小空間可以轉換成大空間的型態    
char → short → int→float+double   
:::   
1. 強制轉型語法:(要轉換的資料型態)變數名稱|值;    
2. 例如: (double)sum/3; 将sum號為double型態後除以3    
    
    
    
    