เริ่มต้นเขียนภาษาซี
ในภาษา C  จะมีฟังก์ชันสำหรับการพิมพ์และการรับข้อมูลไว้ให้ใช้มากมาย  การพิมพ์ก็คือ  การนำข้อมูลไปแสดงที่หน้าจอ และการรับข้อมูลก็คือ  การรับข้อมูลจากคีย์บอร์ดเข้ามา  ซึ่งในภาษา C นั้นจะมองอุปกรณ์ในเครื่องคอมพิวเตอร์เป็นไฟล์ทั้งหมด  ยกตัวอย่างเช่น  จอภาพจะเป็น Standard Output File  และคีย์บอร์ดจะเป็น Standard Input File ดังรูปที่ 3-1
 

                Standard Input File  โดยทั่วไปก็คือ  Buffered  นั่นเอง  ซึ่งจะทำหน้าที่ในการเก็บข้อมูลที่ได้รับจากคีย์บอร์ดไปเก็บไว้  โดยเรียงลำดับกันเข้าไป 
Standard Output File  คือ  จอภาพ  ซึ่งก็เหมือนกับคีย์บอร์ด  ซึ่งจะเป็นเท็กซ์ไฟล์  เมื่อต้องการจะแสดงข้อมูลนั้น  จะทำการแปลงข้อมูลเป็นข้อความก่อนแล้วค่อยพิมพ์แสดงออกมา 
การพิมพ์ข้อมูล 
ฟังก์ชันมาตรฐานที่ใช้ในการพิมพ์ข้อมูลของภาษา C คือ  printf  ซึ่งมีรูปแบบดังนี้ 
รูปแบบ 
Printf  (“[รูปแบบข้อความ]”,[ตัวแปร])

ในส่วนรูปแบบข้อความนั้น  อาจจะเป็นตัวอักษร  ข้อความ  หรือเป็นตัวกำหนดชนิดของข้อมูล  ซึ่งใช้กำหนดชนิดข้อมูลที่จะพิมพ์  ซึ่งจะต้องอยู่หลังเครื่องหมาย %  เสมอ  และสามารถใช้ได้ทั้งการ  Input  และ  Output  ดังแสดงในตารางที่ 3 -1

ตารางที่ 3 – 1 แสดงตัวกำหนดชนิดข้อมูล

ชนิดข้อมูล

ขนาด

รหัส

ตัวอย่าง

char

-

c

%c

short int
int
long int

h
-
I or L

d
d
d

%hd
%d
%Ld

float
double
long doule

-
-
L

f
f
f

%f
%f
%Lf

                
และผู้ใช้สามารถกำหนดความยาวของข้อมูลที่จะแสดงออกมาได้  โดยมีรูปแบบคำสั่งดังนี้ 
%[ความยาว][ตัวกำหนดข้อมูล]
สามารถดูตัวอย่างได้ในตารางที่ 3- 2

ตารางที่ 3 -2  การแสดงข้อมูลแบบกำหนดและไม่กำหนดความยาว

ค่า

%d

%4d

      12
123
1234
12345

12
123
1234
12345

    12
123
1234
12345

                ถ้าข้อมูลเป็นตัวเลขชนิด float ก็สามารถทำได้เช่นกัน  แต่จะต้องกำหนดตัวเป็นดังนี้
% [ความยาว].[จำนวนเลขหลังจุดทศนิยม][ตัวกำหนดข้อมูล]
เช่น 
printf(“%7.2f”,23.35000);
ซึ่งมีความหมายว่า  ข้อมูลที่จะแสดงยาวทั้งหมด 5 ตัว  โดยแบ่งเป็นจำนวนตัวเลขหน้าจุด  ทศนิยม 4 ตัว  ทศนิยม 1 ตัว  และตัวเลขหลังจุดทศนิยมอีก 2 ตัว ผลลัพธ์ของคำสั่งด้านบนจะเป็นดังนี้ 
                                23.35 
ตัวอย่างการพิมพ์ข้อมูล 
1. printf(“%d%c%f”,23, ‘z’,4.1);
ผลลัพธ์ที่ได้เป็นดังนี้ 
                                23z4.100000
ผลลัพธ์ที่ออกมาติดกัน  เพราะในรูปข้อความระหว่างตัวกำหนดชนิดข้อมูลแต่ละตัวนั้นไม่ได้เว้นวรรคไว้  จึงแสดงผลออกมาติดกัน 
2. printf(“%d %c %f”, 23. ‘z’, 4.1);
ผลลัพธ์ที่ได้เป็นดังนี้ 
                23 z 4.100000
เป็นการพิมพ์ตามตัวอย่างที่ 1 แต่แก้ไขให้มีการเว้นวรรคระหว่างค่าด้วย 
3.            int num1 = 23;
char zee = ‘z’;
float num2 = 4.1;
printf(“%d %c %f”, num1, zee, num2);
ผลลัพธ์ที่ได้เป็นดังนี้ 
                23 z 4.100000
4.            printf(“%d %c %5.1f”, 23, ‘z’, 14.2);
printf(“%d %c %5.1f”, 107, ‘A’, 53.6);
printf(“%d %c %5.1f”, 1754, ‘F’, 122.0);
printf(“%d %c %5.1f”, 3, ‘P’, 0.1);
                ผลลัพธ์ที่ได้เป็นดังนี้ 
                                23                           z              14.2
                                107                         A             53.6
                                1754                       F             122.0
                                3                              P             0.1
5. printf(“The number is %6d”, 23);
ผลลัพธ์ที่ได้เป็นดังนี้ 
                                The number is     23
ในภาษา C นั้นจะมีค่าคงที่ที่เป็นตัวอักษรอยู่ชุดหนึ่ง  ที่จะใช้ในการควบคุมการพิมพ์และแสดงเครื่องหมายบางอย่างที่ไม่สามารถพิพม์เครื่องหมายนั้นตรงๆ  ลงไปในรูปแบบของข้อความได้ ซึ่งชุดค่าคงที่ของตัวอักษรเหล่านี้  เรียกว่า Back-slash character ดังแสดงในตารางที่ 3-3
ตารางที่ 3-3  แสดง Back-slash character

สัญลักษณ์

ความหมาย

‘’

Null Character

‘a’

Alert

‘’

Backspace

‘ ’

Horizontal

‘ ’

Newline

‘v’

Vertical tab

‘f’

Form feed

‘ ’

Carriage return

‘’

Single quote

‘”’

Double quote

‘’

Backslash

ตัวอย่างการพิมพ์ข้อมูลแบบที่ผิด 
1. printf(“%d %d %d ”, 44, 55);
44  55  0
ในรูปแบบข้อความมีตัวกำหนดชนิดข้อมูล 3 ตัว แต่มีค่าที่ส่งให้เพียง 2 ค่า 
2. printf(“%d %d ”, 44, 55, 66);
44  55
ในรูปแบบข้อความมีตัวกำหนดชนิดข้อมูลเพียง 2 ตัว แต่มีค่าที่ส่งไปให้ 3 ตัว ทำให้พิมพ์ค่าที่ 3 อกมาได้ 
3. long int x = 444446766;
printf(“%d ”, x);
-18386
พิมพ์ค่าออกมาไม่ตรงตามค่าที่แท้จริง  เนื่องจากใช้ตัวกำหนดชนิดข้อมูลไม่ตรงกับชนิดข้อมูลที่ต้องการจะพิมพ์  จะต้องใช้ตัวกำหนดข้อมูลเป็น %Ld
รูปแบบการรับข้อมูล 
ฟังก์ชันมาตรฐานที่ใช้ในการรับข้อมูลของภาษา C คือ scanf ซึ่งมีรูปแบบดังนี้
รูปแบบ 
                Scanf(“[รูปแบบข้อความ]”,[ที่อยู่ของตัวแปร])

                                 รูปที่ 3-3 แสดงฟังก์ชันในการรับข้อมูลจากคีย์บอร์ด

                เมื่อโปรแกรมทำงานมาถึงฟังก์ชันนี้  โปรแกรมจะหยุดรอให้ผู้ใช้ป้อนข้อมูล  โดยข้อมูลที่ป้อนลงไปจะไปแสดงบนจอภาพด้วย  เมื่อป้อนเสร็จให้กดปุ่ม Enter ข้อมูลก็จะถูกเก็บในตัวแปรตามรูปแบบข้อความ  โดยในรูปแบบข้อความนั้นจะต้องมีตัวกำหนดชนิดข้อมูลด้วย  ซึ่งตัวกำหนดชนิดข้อมูลจะต้องมีจำนวนเท่ากับตัวแปร  มิฉะนั้นจะเกิด Error ขึ้นมาทันที
ตัวอย่างการรับข้อมูล 
1. 214  156  14z
scanf(“%d%d%d%c”, &a, &b, &c, %d);
สาเหตุที่ไม่ต้องเว้นวรรคระหว่าง 14 กับ z นั้น เพราะ %c จะไม่ตัดช่องว่าง เพราะช่องว่างก็ถือว่าเป็นตัวอักษรเหมือนกัน  เพราะฉะนั้นจะต้องแก้เป็นดังนี้
                scanf(“%d%d%d %c”, &a, &b, &c, %d);
2. 2314  15  2.14 
scanf(“%d %d %f”, &a, &b, &c);
การรับค่าที่เป็นตัวเลขนั้น  เว้นวรรคจะไม่มีผลค่าการรับค่า 
3. 14/26 25/66 
scanf(“%2d/%2d %2d/%2d”, &num1, &num2, &num3, &num4);
ถ้ามี / ในรูปแบบข้อความ  ผู้ใช้ต้องพิมพ์เข้าไปด้วยในระหว่างการรับข้อมูบล 
4. 11-25-56 
scanf(“%d-%d-%d”,&a, &b, &c);
ตัวอย่างการรับข้อมูลที่ผิด 
1. int a = 0;
 scanf(“%d”,a);
printf(“%d/n”,a);
234                         (Input)
                                                0                              (Output)
ตัวอย่างนี้ผิดเพราะในตอนรับค่าไม่มีเครื่องหมาย & หน้า a ทำให้เมื่อรับค่าแล้วไม่รู้จะไปเก็บค่าไว้ที่ไหนทำให้ error
2. float a = 2.1;
scanf(“%5.2f”,&a);
printf(“%5.2f”,a);
ตัวอย่างนี้จะคอมไพล์ผ่านแต่จะรันไม่ได้  เพราะในการรับค่าจะไม่สามารถกำหนดความยาวในการรับแบบจุดทศนิยมได้ 
3. int a;
Int b;
scanf(“%d%d%d”,&a, &b);
Printf(“%d %d/n”, a, b);
5  10                      (Input)
                                5  10                      (Output)
ตัวอย่างนี้ในตอนรับค่ามีตัวกำหนดชนิดข้อมูล 3 ตัว แต่มีที่อยู่ของตัวแปรเพียง 2 ตัว ฟังก์ชั่น scanf จะรับค่าเพียง 2 ค่า และจะออกไปเลย  เพราะไม่สามาหาที่อยู่ให้กับค่าที่ 3 ได้
ฟังก์ชันการรับข้อมูลตัวอักษร 
การที่จะใช้ฟังก์ชันต่อไปนี้ได้  จะต้องนำเข้าเข้าไลบรารีไฟล์ที่ชื่อ conio.h ด้วย 
getch เมื่อทำงานมาถึงฟังก์ชันนี้  โปรแกรมจะหยุดให้ผู้ใช้พิมพ์ข้อมูล 1 ตัวอักษร และเมื่อป้อนเสร็จแล้วไม่ต้องกดปุ่ม Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่  และตัวอักษรที่พิมพ์ลงไปจะไม่แสดงออกทางจอภาพด้วย  ซึ่งตัวอย่างแสดงได้ดังนี้
                ch = getch();
getche ฟังก์ชันนี้จะทำงานเหมือนกับฟังก์ชัน getch แต่จะแสดงตัวอักษรที่พิมพ์เข้าไปออกทางจอภาพด้วย ซึ่งตัวอย่างแสดงดังนี้
ch = getch();
getchar เมื่อทำงานมาถึงฟังก์ชันนี้  โปรแกรมจะหยุดให้ผู้ใช้พิมพ์ข้อมูล 1 ตัวอักษร  และเมื่อป้อนเสร็จแล้ว  จะต้องกดปุ่ม Enter ด้วย และเคอร์เซอร์ก็จะขึ้นบรรทัดใหม่  ส่วนตัวอักษรที่พิมพ์ลงไปก็จะแสดงออกทางจอภาพด้วย  ซึ่งตัวอย่างแสดงดังนี้
ch = getchar(0;
ตัวอย่างโปรแกรม 
ในโปรแกรม 3-1 เป็นโปรแกรมง่ายๆ จะแสดง “Nothing”
                โปรแกรมที่ 3-1 โปรแกรมที่แสดงคำว่า “Nothing”

                ผลลัพธ์ที่ได้


แบบฝึกหัดก่อนเรียน : 
แบบฝึกหัดหลังเรียน :