หน่วยที่ 2 คำสั่งรับค่าและแสดงผล

   การทำงานของโปรแกรมส่วนใหญ่มักจะเป็นการเชื่อมโยงกับผู้ใช้แบบ 2 ทิศทาง นั่นก็คือ ทั้งภาคของการแสดงผลการทำงานออกทางจอภาพ และภาคการรับข้อมูลจากผู้ใช้เข้ามาทางแป้นพิมพ์ เพื่อร่วมในการประเมินผลของโปรแกรม ซึ่งในภาครับข้อมูลจากผู้ใช้ ในภาษาซีกำหนดฟังก์ชันมาตรฐานเอาไว้ให้เรียกใช้แล้ว เช่นเดียวกับภาคของการแสดงผล ซึ่งอธิบายรายละเอียดของฟังก์ชัน เหล่านั้นได้ดังนี้คือ

          การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน scanf();

             ฟังก์ชันนี้อยู่ใน header ไฟล์ชื่อ stdio.h เป็นฟังก์ชันสำหรับรับข้อมูลมาจากแป้นพิมพ์ ที่สามารถรับข้อมูลได้ทุกประเภทไม่ว่าจะเป็นชนิด char , short , int , long , float , double , string โดยมีรูปแบบการเรียกใช้ดังนี้ 

                  scanf("ตัวแทนตัวแปร",&ชื่อตัวแปร);

             โดยที่...

              ตัวแทนตัวแปร คือ ส่วนที่ใช้รหัสควบคุมรูปแบบ เพื่อกำหนดชนิดของข้อมูลที่จะรับเข้ามา จากแป้นพิมพ์ โดยรหัสควบคุมรูปแบบจะใช้รหัสเดียวกันกับ รหัสรูปแบบของฟังก์ชัน printf ()

              ชื่อตัวแปร คือชื่อตัวแปรที่ใช้เก็บค่าของข้อมูลที่รับเข้ามาจากแป้นพิมพ์ โดยชนิดของตัวแปรจะต้องตรงกับรหัสควบคุมที่กำหนดไว้ นอกจากนี้จะต้องใช้ เครื่องหมาย & นำหน้าชื่อตัวแปรด้วย ยกเว้นตัวแปรที่เป็นชนิด string อาจละเว้นการใช้เครื่องหมาย & ได้

ตารางแสดงตัวแทนตัวแปรตามชนิดของข้อมูล

ตัวแทนตัวแปร

ชนิดตัวแปร

%d

    ตัวเลขจำนวนเต็ม (int)

%f

    ตัวเลขทศนิยม (float)

%c

    ตัวอักขระ (char)

%ld

    ตัวเลขจำนวนเต็มแบบยาว (long)

 

      ตัวอย่างที่ 1  การใช้ฟังก์ชัน scanf เพื่อรับข้อมูลมาจากแป้นพิมพ์เพื่อรับชื่อและนามสกุล
 

1

#include <stdio.h>

 

2

#include <conio.h>

 

3

int main()

 

4

{

 

5

       char name[15],lname[20];

// ให้ตัวแปร name และ lname เป็น
   string

6

       printf("Input your name and lname : ");

// แสดงข้อความ Input your name 
   and lname :

7

       scanf("%s%s",name,lname)    ;

//รอรับข้อมูลจากแป้นพิมพ์เพื่อเก็บไว้
   ที่ตัวแปร name และ lname

8

       printf("\n\n\n");

// ขึ้นบรรทัดใหม่จำนวน 3 บรรทัด

9

       printf("Hello khun %s",name);

// แสดงข้อความ Hello khun ตามด้วย
   ข้อมูลในตัวแปร name ที่ %s

10

       printf("   ");

// แสดงช่องว่าง

11

       printf("%s",lname);

// แสดงข้อมูลในตัวแปร lname ณ 
   ตำแหน่ง %s

12

       getch();

// ฟังก์ชัน getch() ใช้หยุดดูผลจนกว่า
   กดแป้นพิมพ์ใดๆ

13

       return 0;

// คืนค่า 0 ให้ฟังก์ชัน main เพื่อ
   บอกว่าโปรแกรมทำงานสมบูรณ์

14

}

 


      ผลที่ได้จากการ Run

      ตัวอย่างที่ 2  การใช้ฟังก์ชัน scanf เพื่อรับข้อมูลมาจากแป้นพิมพ์ที่เป็นตัวเลขสองจำนวน
                               แล้วมาคูณกัน
 

1
2
3
4

#include <stdio.h>
#include <conio.h>
int main()
{
 

 

5
6
7

8

9

10

      int a,b,c;
      printf("Input 1st number : ");
      scanf("%d",&a);

      printf("Input 2nd number : ");

      scanf("%d",&b);

      c=a*b;

// ประกาศตัวแปร a,b,c เป็นชนิด integer
// แสดงข้อความ Input 1st number : บนจอภาพ
// รอรับตัวเลขตัวที่หนึ่งจากแป้นพิมพ์ 
   ไปเก็บไว้ที่ตัวแปร a
// แสดงข้อความ Input 2nd number : 
   บนจอภาพ
// รอรับตัวเลขตัวที่สองจากแป้นพิมพ์ 
   ไปเก็บไว้ที่ตัวแปร b
// นำค่าของ a คูณกับค่าของ b ผลลัพธ์
   นำไปเก็บที่ตัวแปร c

11
12

13

14

15

      printf("\n\n\n");
      printf("%d x %d = %d",a,b,c);

      getch();

      return 0;

}

// ขึ้นบรรทัดใหม่จำนวน 3 บรรทัด
// แสดงค่าของ a b c ณ ตำแหน่งของ %d 
   ทั้งสามตัวตามลำดับ
// ฟังก์ชัน getch() ใช้หยุดดูผลจนกว่าจะกด
   แป้นพิมพ์ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า 
   โปรแกรมทำงานสมบูรณ์


      ผลที่ได้จากการ Run


 

          การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน gets();

              gets มาจากคำว่า get string อยู่ใน header ไฟล์ชื่อ stdio.h เป็นฟังก์ชันสำหรับรับข้อมูลชนิด string เข้ามาจากแป้นพิมพ์ แล้วนำไปเก็บไว้ที่ตัวแปร การอ่านข้อมูลด้วยฟังก์ชัน gets นี้ ถ้าข้อมูลหรือข้อความที่ป้อนเข้ามามีช่องว่าง ฟังก์ชัน gets ก็สามารถรับข้อมูลทั้งหมดเข้ามาได้โดยไม่มีปัญหาใด ๆ ฟังก์ชัน gets จะหยุดรับข้อมูลเมื่อมีการกดแป้น Enter เท่านั้น ฟังก์ชัน gets จะใส่ \0 ไว้ท้ายข้อความโดยอัตโนมัติด้วย

              รูปแบบคำสั่ง

                 gets(ตัวแปรชนิดตัวอักษรแบบชุด หรือ string_variable);

                 โดยที่ string_variable หมายถึงตัวแปรชนิดข้อความ หรือ string ที่ใช้เก็บค่าที่ป้อนข้อมูลมาจากแป้นพิมพ์ เช่น gets(school_name);

       ตัวอย่างที่ 3   ารใช้ฟังก์ชัน gets เพื่อรับชื่อและนามสกุล
 

1
2
3
4
#include <stdio.h>
#include <conio.h>
int main()
{

 

5

6

7


8

      char name[25];

      printf("What is your name : "); 

      gets(name);


      printf("\n\n\n");

// ประกาศตัวแปร name 
   เป็นชนิด string
// แสดงข้อความ What is 
    your name : บนจอภาพ
// รอรับชื่อที่ป้อนเข้ามาจาก
    แป้นพิมพ์นำไปเก็บไว้
    ที่ตัวแปร name
// ขึ้นบรรทัดใหม่จำนวน
   3 บรรทัด

9


10

11


12
      printf("Hello %s, nice to meet you.",name);


      getch();

      return 0;


}

// แสดงชื่อที่รับมาจากแป้น
   พิมพ์คือตัวแปร name 
   ณ ตำแหน่ง %s
// ฟังก์ชัน getch() ใช้หยุดดูผล
   จนกว่ากดแป้นพิมพ์ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main 
   เพื่อบอกว่า โปรแกรม
   ทำงานสมบูรณ์


      ผลที่ได้จากการ Run

             จากตัวอย่างที่ 3 แสดงให้เห็นว่าการรับชื่อและนามสกุล เข้ามาเก็บไว้ที่ตัวแปร name โดยที่ข้อมูลที่ป้อนเข้ามามีช่องว่างระหว่างชื่อ และนามสกุล ฟังก์ชัน gets ก็รับข้อมูลมาได้ทั้งหมด ซึ่งต่างจากฟังก์ชัน scanf โดยในฟังก์ชัน scanf ถ้าข้อมูลที่ป้อนเข้ามามีช่องว่าง จะต้องใช้ตัวแปรสองตัวมารับค่าที่ป้อนเข้ามา ตามตัวอย่างที่ 1 บรรทัดที่ 7 จะเห็นว่าต้องใช้ตัวแปร name และ lname เพื่อรับชื่อและนามสกุลเป็นคนละตัวกัน

 หมายเหตุ

         จากตัวอย่างข้างบน เนื่องจากตัวแปร name เป็นตัวแปรตัวอักษรแบบชุด หรือที่เรียกว่า Stringในการกำหนดตัวแทนตัวแปรในคำสั่ง  printf(); จะใช้สัญลักษณ์  %s  แทนตัวแปร


          การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน
 getchar();

              ฟังก์ชัน getchar เป็นฟังก์ชันที่อยู่ใน header ไฟล์ conio.h ที่ใช้รับข้อมูลชนิด char เข้ามาจากแป้นพิมพ์ ข้อมูลที่ป้อนเข้ามาด้วยฟังก์ชัน getchar นี้ จะต้องต้องกดแป้น Enter โปรแกรมจึงจะทำงานต่อไป และข้อมูลที่ป้อนเข้าไปจะปรากฏให้เห็นบนจอภาพด้วย

              รูปแบบคำสั่ง

                     variable=getchar();

                      โดยที่ variable คือชื่อของตัวแปรที่ต้องเป็นชนิด char เพื่อรับข้อมูลที่ป้อนเข้ามาทางแป้นพิมพ์

              ตัวอย่างการใช้ฟังก์ชัน getchar

                     ch=getchar();
 

                      หมายถึง รอรับตัวอักขระที่ป้อนเข้ามาเพียง 1 ตัวโดยตัวอักษรที่ป้อนเข้ามาจะปรากฏบนจอภาพแล้วต้องกดแป้น Enter

         ตัวอย่างที่ 4   ารรับข้อมูลชนิด char ด้วยฟังก์ชัน getchar()
 

1
2
3
4
#include <stdio.h>
#include <conio.h>
int main()
{

 

 

5
6

7

8
9

      char ch;
      printf("Enter your favorite letter : ");

    
  ch=getchar();

      printf("\n\n\n");
      printf("you press %c ",ch);

// ประกาศตัวแปร ch เป็นชนิด char
// แสดงข้อความ Enter your favorite
   letter : บนจอภาพ
// รอรับการป้อนตัวอักษร 1 ตัวจาก
   แป้นพิมพ์นำไปเก็บไว้ที่ตัวแปร ch 
// ขึ้นบรรทัดใหม่จำนวน 3 บรรทัด
// แสดงตัวอักขระที่ป้อนเข้ามา 
   ณ ตำแหน่ง %c

10

11

12
      getch(); 

      return 0;

}

// ฟังก์ชัน getch() ใช้หยุดดูผลจนกว่า
   กดแป้นพิมพ์ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า
   โปรแกรมทำงานสมบูรณ์


      ผลที่ได้จากการ Run

 

          การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน getche

              ฟังก์ชัน getche เป็นฟังก์ชันที่อยู่ใน header ไฟล์ conio.h ที่ใช้รับข้อมูลชนิด char เข้ามาจากแป้นพิมพ์ ข้อมูลที่ป้อนเข้ามาด้วยฟังก์ชัน getche นี้ จะถูกเก็บไว้ในตัวแปรที่รองรับโดยไม่ต้องกดแป้น Enter และข้อมูลที่ป้อนเข้าไปจะปรากฏให้เห็นบนจอภาพ

              รูปแบบคำสั่ง

                     variable=getche();

                     โดยที่ variable คือชื่อของตัวแปรที่ต้องเป็นชนิด char เพื่อรับข้อมูลที่ป้อนเข้ามาทางแป้นพิมพ์

              ตัวอย่างการใช้ฟังก์ชัน getchar

                     ch=getche();

                      หมายถึง รอรับตัวอักขระที่ป้อนเข้ามาเพียง 1 ตัวนำไปเก็บที่ตัวแปร chโดยตัวอักษรที่ป้อนเข้ามา จะปรากฏบนจอภาพ และไม่ต้องกดแป้น Enter

         ตัวอย่างที่ 5   ารรับข้อมูลชนิด char ด้วยฟังก์ชัน getche()
 

1
2
3
4
#include <stdio.h>
#include <conio.h>
int main()
{

 

5
6

7

8
9

      char ch;
      printf("Enter your favorite letter : ");

    
  ch=getche();

      printf("\n\n\n");
      printf("you press %c ",ch);

// ประกาศตัวแปร ch เป็นชนิด char
// แสดงข้อความ Enter your favorite
   letter : บนจอภาพ
// รอรับการป้อนตัวอักษร 1 ตัวจาก
   แป้นพิมพ์นำไปเก็บไว้ที่ตัวแปร ch 
// ขึ้นบรรทัดใหม่จำนวน 3 บรรทัด
// แสดงตัวอักขระที่ป้อนเข้ามา 
   ณ ตำแหน่ง %c

10

11

12
      getch(); 

      return 0;

}

// ฟังก์ชัน getch() ใช้หยุดดูผลจนกว่า
   กดแป้นพิมพ์ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า
   โปรแกรมทำงานสมบูรณ์

 

      ผลที่ได้จากการ Run

 

 

 

 

             ความหมายของการแสดงผล

                 การแสดงผลหมายถึง การสั่งให้คอมพิวเตอร์นำข้อมูลและผลลัพธ์ที่มีอยู่ในหน่วยความจำ ไปแสดงผลออกที่อุปกรณ์แสดงผล (Output device) ของคอมพิวเตอร์ การแสดงผลที่อุปกรณ์แสดงผลอาจมีเพียงอุปกรณ์เดียว หรือหลาย ๆ อุปกรณ์พร้อมกันก็ได้ เช่น แสดงผลที่จอภาพ เครื่องพิมพ์ ลำโพง แผ่นดิสก์เป็นต้น

             การแสดงผลข้อมูลด้วยฟังก์ชัน printf

                  ฟังก์ชันที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพคือ printf() ซึ่งเป็นฟังก์ชันที่อยู่ใน   ไฟล์ stdio.h การเรียกใช้ฟังก์ชันนี้จะต้องทำการ preprocessor ด้วยการสั่ง   #include <stdio.h> ก่อนเสมอ ฟังก์ชัน printf มีหน้าที่หลักคือ แปลงข้อมูลในลักษณะของเลขฐานสอง (binary) ที่คอมพิวเตอร์ ประมวลผลได้ ให้อยู่ในรูปแบบ ที่มนุษย์เข้าใจ ก่อนแสดงผลข้อมูลออกทางจอภาพ

                    รูปแบบของฟังก์ชัน printf()

                         printf("string_format",data_list);

                    เมื่อ  string_format คือ ส่วนที่ใช้ควบคุมลักษณะการแสดงผล นิยมเขียนอยู่ในเครื่องหมาย   ".... " สิ่งที่อยู่ในเครื่องหมาย  "......." อาจเป็น สตริง หรือข้อความที่ต้องการแสดงผล ซึ่งอาจเป็นข้อความธรรมดา เช่น Hello, world หรืออาจจะเป็นสัญลักษณ์ที่ใช้เป็นตัวแทนชนิดของข้อมูลต่าง ๆ ที่เรียกว่า format code โดยฟังก์ชันจะแสดงค่าที่อยู่ในตัวแปรที่กำหนดโดย data_list

                    data_list คือข้อมูลที่จะแสดงผล ซึ่งอาจเป็นค่าคงที่ ตัวแปร หรือนิพจน์ใด ๆ โดยถ้ามีมากกว่าหนึ่งตัวให้คั่นด้วยเครื่องหมาย , (comma) 

                    การใช้ฟังก์ชัน printf() ร่วมกับอักขระควบคุม

                     อักขระควบคุม เป็นอักขระที่ใช้ในการควบคุมการแสดงผลข้อความ โดยลักษณะของอักขระคบคุมจะใช้เครื่องหมาย  \  (Back slash) นำหน้า และตามด้วยตัวอักษร  ในการควบคุมซึ่งมีรายละเอียดตามตารางด้านล่างนี้ ส่วนการใช้งานอักขระควบคุม จะต้องพิมพ์อักขระควบคุมภายใต้เครื่องหมาย  "    "  ของฟังก์ชัน  printf()

ตัวอักขระควบคุม

ความหมาย

\n

    ขึ้นบรรทัดใหม่

\t

    กำหนด TAB 1ครั้ง(8 อักขระ)

\a

    แสดงเสียง

\\

    แสดงเครื่องหมาย  \

\?

    แสดงเครื่องหมาย  ?

\'

    แสดงเครื่องหมาย  '

\"

    แสดงเครื่องหมาย  "


 
        ตัวอย่างที่ 6 
 แสดงการบวกเลขจำนวนเต็มสองจำนวนแล้วแสดงผล
 

1

#include  <stdio.h>

 

//นำ header file ชื่อ stdio.h เข้ามาใช้งาน

2

#include  <conio.h>

 

// นำ header file ชื่อ conio.h เข้ามาใช้งาน

3

int   main()

 

// ฟังก์ชัน main

4

{

 

// เริ่มต้นบล๊อกของฟังก์ชัน main

5

     int   x=10;

 

// กำหนด 10 ให้กับตัวแปร x ซึ่งเป็นชนิด
   จำนวนเต็ม

6

     int   y=4;

 

// กำหนด 4 ให้กับตัวแปร y ซึ่งเป็นชนิด
   จำนวนเต็ม

7

     printf("%d + %d = %d\n",x,y,x+y);

 

// แสดงตัวเลข ณ ตำแหน่ง %d ทั้งสามตัว
   ตามลำดับ

8

     getch();

 

// รอกดแป้น พิมพ์ใดๆ เพื่อดูผลบนจอภาพ

9

     return 0;

 

// คืนค่า 0 ให้ฟังก์ชัน main

10

}

 

// จบบล๊อกของฟังก์ชัน main


           จากตัวอย่างบรรทัดที่ 7 คือ printf("%d + %d = %d\n",x,y,x+y); นำมาขยายความได้ดังนี้   


ภาพแสดงการทำงานของฟังก์ชัน printf 

           จากภาพด้านบน  ถ้าตัวแปร x เก็บค่า 10 และตัวแปร y เก็บค่า 4 เมื่อฟังก์ชันทำงาน จะให้ค่าในตัวแปร x ไปแสดงในของ control คือ %d ( %d เป็น control เพื่อแสดงผลจำนวนเต็ม หรือ decimal) ตัวแรก และนำค่าในตัวแปร b ไปแสดงใน control คือ %d ตัวที่สอง และนำค่าของนิพจน์ x+y คือ 14 ไปแสดงใน control คือ %d ตัวที่สาม ซึ่งจะทำให้ได้ผลลัพธ์ดันี้   10 + 4 = 14

         ตัวอย่างที่ 7 การใช้ฟังก์ชัน printf เพื่อแสดงตัวแปรชนิด string และค่าคงที่ string
 

1
2
3
4
5

6

7
8
9

10

11
#include <stdio.h>
#include <conio.h>
int main()
{
      char name[25]="This is C language.";

      printf("%s \n",name);

      printf("\n");
      printf("This is C Compiler.");
      getch();

      return 0;

}
 



// ให้ "This is C language." เก็บในตัวแปร
   name
// แสดงค่าของตัวแปร name ณ ตำแหน่ง
   ของ %s
// \n คือการขึ้นบรรทัดใหม่
// แสดงข้อความ This is C Compiler.
// ฟังก์ชัน getch() ใช้หยุดดูผลจนกว่าจะ
   กดแป้นพิมพ์ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า 
   โปรแกรมทำงานสมบูรณ์

      ผลที่ได้จากการ Run

This is C language. 

This is C compiler.

 

         ตัวอย่างที่ 8  การใช้ฟังก์ชัน printf เพื่อแสดงตัวแปรชนิด char และ
                                   การใช้ Tab คือ \t

 

1
2
3
4
5

6

7
8

#include <stdio.h>
#include <conio.h>
int main()
{
      char ch1='A',ch2='B',ch3='C',ch4='D';

      printf("This program show character\n");

      printf("=====================\n");
      printf("%c\t%c\t%c\t%c\n",ch1,ch2,ch3,ch4);

 



// A B C D เก็บในตัวแปร
   ch1,ch2,ch3,ch4 ตามลำดับ
// แสดงข้อความ This program
   show character
// ขีดเส้นคู่ยาว ๆ
//%c ใช้แสดงข้อมูล char 
   ส่วน \t เป็นการใช้ Tab
9
10

11 
12
      printf("=====================\n"); 
      getch();

      return 0;
}

 

// ขีดเส้นคู่ยาว ๆ
// ฟังก์ชัน getch() ใช้หยุดดูผล
    จนกว่ากดแป้นพิมพ์ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main

      ผลที่ได้จากการ Run


This program show character
==========================
A         B         C         D
==========================
 


 
        ตัวอย่างที่ 9  
การใช้ฟังก์ชัน printf เพื่อแสดงตัวแปรชนิด float
 

1
2
3
4
5

6

7
8


9
10


#nclude <stdio.h>
#include <conio.h>
int main()
{
       float x=55.0;

       float y=10.0;

       float z=x/y;
       printf("This program show real 
                  number\n");

       printf("================\n");
       printf("%f / %f = %f\n",x,y,z);


 





// นำ 55.0 ซึ่งเป็นจำนวน
   จริง ไปเก็บที่ตัวแปร x
// นำ 10.0 ซึ่งเป็นจำนวน
    จริง ไปเกบนที่ตัวแปร y
// นำ x/y ไปเก็บที่ตัวแปร z
// แสดงข้อความ This
    program show real
    number
// ขีดเส้นคู่ยาว
// แสดง ค่า x y z ตาม
   ตำแหน่ง %f ทั้งสามตัว
   ตามลำดับ

11 
12 
       printf("================\n"); 
       getch();

 

 

// ขีดเส้นคู่ยาว
// ฟังก์ชัน getch() ใช้หยุด
   ดูผลจนกว่ากดแป้น
   พิมพ์ใด ๆ

13
14

  return 0;
}

 

// คืนค่า 0 ให้ฟังก์ชัน main

      ผลที่ได้จากการ Run


This program show real number
==========================
55.000000 / 10.000000 = 5.50000
==========================

 


   
การควบคุมพื้นที่การแสดงผล

            ตากปกติในการแสดงผลข้อมูลคอมไพเลอร์จะเตรียมขนาดความยาวของข้อมูลให้พอดีกับข้อมูลที่ต้องการแสดงเช่นต้องการแสดงข้อความ COMPUTER ซึ่งมีขนาดความยาว 8 ตัวอักษร คอมไพเลอร์ก็จะแสดงผลข้อความให้พอดีกับข้อความที่แสดงคือ 8 ตัวอักษรพอดี ดังนี้

             เพื่อให้การแสดงผลเป็นไปตามที่ผู้เขียนโปรแกรมต้องการ ในภาษาซี สามารถกำหนดขนาดความยาวของการแสดงผลได้ตามต้องการ เช่น ต้องการแสดง ข้อความ COMPUTER ด้วยขนาดความยาว 12 ตัวอักษร โปรแกรมจะแสดงข้อความชิดด้านขวาของความยาวของพื้นที่ที่จองไว้แสดงผล โดยจะเว้นพื้นที่ว่างด้านซ้ายไว้อีก 4 ตัวอักษรดังรูป

             วิธีการกำหนดความยาวของการแสดงผลทำได้โดยการใส่ตัวเลขลงไปหลังเครื่องหมาย % ใน format_string ซึ่งสามารถนำไปใช้ได้กับข้อมูลทั้งชนิด char string int หรือ float ดังตารางดังนี้

ตารางแสดงการควบคุมพื้นที่การแสดงผลแบบชิดขวา

ตัวอย่างคำสั่ง
ความหมาย
     printf("%6d",234);แสดงตัวเลข 234 ออกทางจอภาพ ด้วยขนาดความยาว 6 ตัวอักษร แล้วจะเหลือช่องว่างด้านซ้ายอีก 3 ตัวอักษร
     printf("%15s","Thungsong");แสดงข้อความ Thungsong ออกทางจอภาพด้วยขนาดความยาว 15 ตัวอักษร แล้วจะเหลือช่องว่างทางซ้าย 6 ตัวอักษร
     printf("%10c",'A');แสดงตัวอักขระ A ออกทางจอภาพด้วยขนาดความยาว 10 ตัวอักษรแล้วจะเหลือช่องว่างทางซ้าย 9 ตัวอักษร
     printf("%10.2f",375.5);แสดงเลขทศนิยมด้วยขนาด 10 ตัวอักษรพร้อมทศนิยม 2 ตำแหน่ง จะเหลือช่องว่างด้านซ้าย 4 ตัวอักษร ( เลข 375.50 มีขนาด 6 ตัว รวมจุดทศนิยมด้วย)

             ในกรณีที่ต้องการเปลี่ยนทิศทางการแสดงผลจากการแสดงชิดทางด้านขวามือไปเป็นให้ชิดทางด้านซ้ายแทน สามารถทำได้โดยการใส่เครื่องหมาย - (ลบ) ไว้หน้าตัวเลขที่ระบุขนาดความยาวของการแสดงผล ดังนี้

ตารางแสดงการควบคุมพื้นที่การแสดงผลแบบชิดซ้าย

ตัวอย่างคำสั่ง
ความหมาย
     printf("%-6d",234);แสดงตัวเลข 234 ออกทางจอภาพ ด้วยขนาดความยาว 6 ตัวอักษรแล้วจะเหลือช่องว่างด้านขวาอีก 3 ตัวอักษร
     printf("%-15s","Thungsong");แสดงข้อความ Thungsong ออกทางจอภาพด้วยขนาดความยาว 15 ตัวอักษรแล้วจะเหลือช่องว่างทางขวา 6 ตัวอักษร
     printf("%-10c",'A');แสดงตัวอักขระ A ออกทางจอภาพด้วยขนาดความยาว 10 ตัวอักษรแล้วจะเหลือช่องว่างทางขวา 9 ตัวอักษร
     printf("%-10.2f",375.5);แสดงเลขทศนิยมด้วยขนาด 10 ตัวอักษรพร้อมทศนิยม 2 ตำแหน่ง จะเหลือช่องว่างด้านขวา 4 ตัวอักษร

 

  การควบคุมตำแหน่งตัวเลขหลังจุดทศนิยม

             การแสดงผลตัวเลขที่เป็นจำนวนจริง หรือเลขที่มีทศนิยม ถ้าไม่มีการกำหนดค่าใด ๆ เมื่อใช้รหัสควบคุมรูปแบบ %f   (format_string) คอมไพเลอร์ก็จะแสดงด้วยทศนิยม 6 ตำแหน่งดังตัวอย่างต่อไปนี้

ตารางแสดงการแสดงผลข้อมูลแบบเลขทศนิยมโดยไม่กำหนดขนาดการแสดงผล

ตัวอย่างคำสั่ง
ความหมาย
     printf("%f",123.6);  คอมไพเลอร์จะแสดงผลออกมาเป็น 123.600000
     printf("%f",-23.656);  คอมไพเลอร์จะแสดงผลออกมาเป็น -23.656000
     printf("%f",5.0);  คอมไพเลอร์จะแสดงผลออกมาเป็น 5.000000
     printf("%f",-6.5);  คอมไพเลอร์จะแสดงผลออกมาเป็น -6.500000

             ในกรณีที่ต้องการให้แสดงผลเลขจำนวนจริงด้วยขนาดความกว้างและเลขทศนิยมตามที่ต้องการนั้นจะต้องระบุตัวเลขเข้าไปหลังเครื่องหมาย % ใน string_fomat ด้วยเลขและทศนิยม เช่น %6.2f  หรือ %8.4f ดังต่อไปนี้

ตารางแสดงการแสดงผลข้อมูลแบบเลขทศนิยมโดยกำหนดขนาด
การแสดงผลและทศนิยม

ตัวอย่างคำสั่ง
ความหมาย
     printf("%8.2f",123.6);  คอมไพเลอร์จะแสดงผลออกมาเป็น 123.60 มีช่องว่างด้านซ้าย 2 ตัวอักษร
     printf("%8.4f",-23.656);  คอมไพเลอร์จะแสดงผลออกมาเป็น -23.6560 ไม่มีช่องว่างด้านซ้าย 2 ตัวอักษร
     printf("%10.1f",5.0);  คอมไพเลอร์จะแสดงผลออกมาเป็น 5.0 มีช่องว่างด้านซ้าย 8 ตัวอักษร
     printf("%8.3f",-6.5);  คอมไพเลอร์จะแสดงผลออกมาเป็น -6.500 มีช่องว่างด้านซ้าย 2 ตัวอักษร


 
        ตัวอย่างที่ 10  
การแสดงผลเลขทศนิยม
 

1
2
3
4
5


6

7


8


9

#include <stdio.h>
#include <conio.h>
int main()
{
     
 printf("012345678901234567890\n");


      printf("%10.3f\n",579.5);


      getch();


      return 0;


}





// แสดงเลข
    012345678901234567890
    เพื่อบอกตำแหน่ง
// แสดงเลขขนาด 10 ช่อง
   ทศนิยม 3 ตำแหน่ง
// ฟังก์ชัน getch() ใช้หยุด
   ดูผลจนกว่ากดแป้นพิมพ์
   ใดๆ
// คืนค่า 0 ให้ฟังก์ชัน main
   เพื่อบอกว่า โปรแกรม
   ทำงานสมบูรณ์

      ผลที่ได้จากการ Run


012345678901234567890

579.500
 

 
Comments