C語言簡介:基本輸入輸出

本教學面向新手,故教學內容多為基礎知識,倘若您希望學習進階內容,本文並不符合您的需求。

Hello World!

首先,筆者先來帶各位寫第一支C程式!

Hello_world.c
1
2
3
4
5
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}

恭喜!你已經成功完成自己的第一支C程式了!
接下來來說明一下這些程式碼到底是怎麼一回事:

#include <stdio.h>

1
#include <stdio.h>

這裡是要引入一個名叫 stdio.h 的標頭檔。
stdio.h裡面有許多C語言常用的函數,例如

  • scanf():輸入
  • printf():輸出
  • getchar():讀一個字元

…等等。

int main()

2
int main()

這裡,是我們的主程式,整個程式的起點。

printf("Hello World!\n")

3
printf("Hello World!\n");

如同前面所說的, printf() 是用來輸出的函數,所以 printf("Hello World!\n") 就是用來在螢幕上印出 Hello World!(換行)
有沒有注意到甚麼?當我們寫 printf("Hello World!"); 時,輸出的居然不是 Hello World!\n 而是 Hello World!,其中的 \n 沒有被印出來,這是因為 \n跳脫字元,常見的跳脫字元有 \n(換行)、\t(Tab)、\\(印出 \)等等。

return 0

4
return 0;

程式最後,我們需要return一個exit code,而這裡我們寫 return 0; 通常代表程式正常結束,作業系統可用這個回傳值判斷執行結果。

試試看

如果今天希望印出 Hello C! 在螢幕上應該怎麼寫呢?

變數

變數是一種用來裝資料的「小箱子」,我們可以透過以下程式儲存變數

int x = 3;

這段程式中我們宣告了一個 int 型態的變數 x,而 x 的值是 3
注意到,假如之後我們要對 x 的值進行更動,例如將 x 的值改為 20,那麼只需要寫下以下程式碼

x = 20;

也就是,不需要再寫下 int,這只有當該變數第一次出現、宣告時會使用。

所以,int是甚麼

int 是一種資料型別,代表整數(integer),不同資料型別有不同代碼,例如字元是 char

試試看

現在,請宣告一個變數 x,讓他的值為 1

那我可以宣告變數後不賦值嗎?

先說答案:可以。
但是,實務上通常建議宣告後初始化,避免「垃圾值」可能帶來的困擾。

試試看

現在,請試宣告一個變數 a,令其值為 1,並宣告一個變數 b,不賦值,然後輸出這兩個變數,觀察哪裡不同。
註: 這只是為了觀察亂碼,實際寫程式時不要這樣做!

變數的種類

變數 意義
int 整數
long 長整數
long long 長整數
float 浮點數
double 雙精度浮點數
char 字元

還有其他種類,在此不一一贅述,詳請見此說明

輸入

如果今天變數的值不是由我們直接在程式碼設定,而是由使用者自行輸入呢?
輸入是讓使用者跟程式互動的入口。
如果今天要輸入,請使用 scanf(),格式為 scanf("格式字串", &變數)
註: scanf() 在特定情況下變數不用加 &,但不屬於今日本文討論範圍,歡迎有興趣的讀者自行搜尋。

所以,如果今天我要輸入一個整數 a,可以使用

scanf("%d", &a);

注意到格式字串我並不是int,而是 %d
聰明的你應該可以猜到 %d 是告訴程式說「欸我要輸入的是整數喔!」
說得精確一點,是十進位整數
你說「好吧,那如果我今天想輸入的是浮點數或字元怎麼辦?」
以下整理一個簡單的小表格提供讀者參考:

型態 格式字串
十進位整數 %d
浮點數 %f
雙精度浮點數 %lf
字元 %c

scanf() 讀取 double 必須用 %lf,但 printf() 輸出 double 在 C99 標準前是用 %f(現在 %lf 也可以,但習慣上仍多用 %f

輸出

如果我們要把資訊印在螢幕上怎麼辦呢?
C語言的輸出函數是 printf()
如果要輸出一段話,例如 hello, world!,就可以寫

printf("hello, world!");

如果我今天已經有以下程式

1
2
3
4
5
#include <stdio.h>
int main() {
int a = 15;
return 0;
}

而我希望印出a的值呢?
此時我們可以這樣寫

1
2
3
4
5
6
#include <stdio.h>
int main() {
int a = 15;
printf("%d", a);
return 0;
}

注意到了嗎?在 printf() 裡面,我並沒有在 a 前面加上 &

試試看

  1. 請試輸入一整數 a,並印出其值。
  2. 請試輸入一整數 b,並印出 b+3 的值。

結語

以上就是C語言基本輸入輸出簡介。
倘內容有誤或仍有疑問,歡迎在下方留言區留言!