ข่าว IT ล่าสุด
ถูกใจอย่าลืม Like Fanpage
ภาษาซี มาดูกัน
แสดงแล้ว 10566 ครั้ง /
กุมภาพันธ์ 08, 2011, 12:54:23

MoAme

ออฟไลน์
กระทู้ : 41
คะแนนขอบคุณ : 0
5 คำสั่งภาษาซี
1.ฟังก์ชันรับข้อมูล scanf()
ความหมาย เป็นฟังก์ชันที่รับค่าจากอุปกรณ์นำเข้ามาตรฐาน และนำค่าที่ได้เก็บไว้ในตัวแปรในโปรแกรม ฟังก์ชันรับข้อมูลโดยกำหนดรูปแบบ ฟังก์ชันรับข้อมูลโดยกำหนดรูปแบบนั้นได้แก่ ฟังก์ชัน scanf() ฟังก์ชัน scanf() เป็นฟังก์ชันที่รับข้อมูลจากแป้นพิมพ์เข้ามาเก็บไว้ในตัวแปร โดยตัวแปรเหล่านี้ต้องเป็นพอยน์เตอร์ที่ชี้ไปยังข้อมูล ที่มีชนิดสอดคล้องกับรูปแบบการรับข้อมูลที่ได้กำหนดไว้ในฟังก์ชัน scanf() การรับข้อมูลของฟังก์ชัน scanf () นี้เป็นการอ่านจากอินพุตบัฟเฟอร์ (Input buffer) ซึ่งต้องเคาะปุ่ม Enter เพื่อบอกการสิ้นสุดของข้อมูล และค่าที่ส่งกลับมายังฟังก์ชัน scanf () จะมีค่าเท่ากับจำนวนข้อมูลที่ฟังก์ชันนี้รับได้ การรับข้อมูลจะต้องใช้เครื่องหมาย & นำหน้าตัวแปร ยกเว้นตัวแปรที่เป็นตำแหน่งที่อยู่ เช่น ตัวแปรสตริง หรือตัวแปรชุด ฟังก์ชัน scanf () นี้ถูกนิยามในแฟ้ม stdio.h มีรูปแบบดังนี้รูปแบบคำสั่ง
รูปแบบ scanf (control,argument-list) ;
argument-list
หมายถึง ตำแหน่งที่อยู่ของตัวแปรที่จะรับค่าจากแป้นพิมพ์ ถ้ามีมากกว่า 1 ค่าจะต้องแยกด้วยเครื่องหมายคอมม่า ( , )
control
หมายถึง รูปแบบที่ใช้ในการรับข้อมูล ซึ่งจะต้องเขียนภายใต้เครื่องหมายคำพูด (" ") และมีรูปแบบชนิดข้อมูลที่รับ โดยใช้สัญลักษณ์ดังตารางที่5.2 และแต่ละสัญลักษณ์จะต้องมีเครื่องหมาย % นำหน้า

รูปแบบการพิมพ์
เครื่องหมาย
ความหมาย
%d
พิมพ์ด้วยตัวเลขฐานสิบ
%f
พิมพ์ตัวเลขมีจุดทศนิยม
%c
พิมพ์ด้วยตัวอักษรตัวเดียว
%s
พิมพ์ด้วยข้อความ
%u
พิมพ์ด้วยตัวเลขไม่คิดเครื่องหมาย
ตัวอย่างคำสั่งscanf ("LKS isLumpang %s School",name);อธิบายตัวอย่างคำสั่งคำสั่ง scanf จะรับค่าจากแป้นพิมพ์ โดยค่าที่ได้จะเก็บไว้ในตัวแปร nameสังเกตว่าจะไม่มีผลลัพธ์ปรากฏบนจอภาพ เนื่องจากฟังก์ชัน scanf เป็นเพียงเก็บค่าไว้ในตัวแปรเท่านั้นและจะนำตัวแปร name ไปใช้งานอย่างไรนั้น ขึ้นอยู่กับนักเขียนโปรแกรมอีกที 1

2.ฟังก์ชัน gets
ฟังก์ชัน gets() ใช้สำหรับข้อมูลชนิดสตริงก์หรือข้อความซึ่งป้อนทางแป้นพิมพ์โดยมีรูปแบบดังนี้
gets(str);
เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนข้อความ เมื่อป้อนเสร็จแล้วกด Enter ข้อความทั้งหมดจะถูกเก็บไว้ในอาร์เรย์สตริงก์ str โดย carriage return ( จากการกด Enter) จะแทนด้วยสตริงก์ศูนย์ดังได้กล่าว ฟังก์ชัน gets() จะทำให้เคอร์เซอร์ขึ้นบรรทัดใหม่หลังจากกด Enter และกำหนดในไฟล์ stdio.h
ตัวอย่าง โปรแกรมที่ 13
#include”stdio.h”
main()
{
char message[50];
printf(“ Enter a message(less than 49 characters)n”);
gets(message);
printf(“ The message you entered is %sn”,message);

3.ฟังก์ชัน getche() และ getch()
ฟังก์ชัน getche() และ getch() มีรูปแบบดังนี้
ch = getche();
ch = getch();
ฟังก์ชัน getche() จะรับตัวอักษร 1 ตัวที่ป้อนทางแป้นพิมพ์ และจะแสดงตัวอักษรบนจอภาพ เมื่อป้อนข้อมูลเสร็จไม่ต้องกด Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่
ฟังก์ชัน getch() จะคล้ายกับฟังก์ชัน getche() ต่างกันตรงที่จะไม่แสดงตัวอักษรขณะป้อนข้อมูล
ฟังก์ชัน getche() และ getch() กำหนดในไฟล์ conio.h ดังนั้นจะต้องระบไฟล์ดังกล่าวในโปรแกรม
ตัวอย่าง โปรแกรมที่ 11
#include”stdio.h”
#include”conio.h”
main()
{
char ch;
printf(“ Type one character “);
ch = getche();
printf(“n”);
printf(“ The character you typed is “);
putchar(ch);
}

4.ฟังก์ชัน getchar()
ฟังก์ชัน getchar() ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์โดยจะรับตัวอักษรเพียง 1 ตัวเท่านั้น และแสดงตัวอักษรบนจอภาพ
ch = getchar();
เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนตัวอักษร 1 ตัว หลังจากนั้นกด Enter ตัวอักษรที่ป้อนจะถูกเก็บไว้ในตัวแปร ch ซึ่งเป็นชนิดตัวอักษรและเคอร์เซอร์จะขึ้นบรรทัดใหม่ ฟังก์ชัน getchar() กำหนดในไฟล์ stdio.h เช่นเดียวกับฟังก์ชัน scanf()
ตัวอย่าง โปรแกรมที่ 9
#include”stdio.h”
main()
{
char ch;
printf(“ Type one character “);
ch = getchar();
printf(“ The character you typed is %cn”,ch);
}

5.ใช้คำสั่ง Print
ได้รับเมล์ สอบถามปัญหาเกี่ยวกับเรื่องคำสั่งในการแสดงผลบนจอ LCD ที่ต้องการแสดงค่าที่เป็นตัวแปร int ไอ้ผมจึงลองหาข้อมูลดู เจอครับ เจอจนได้ โดยเราสามารถใช้คำสั่ง printf ได้ จริงๆ แล้วก็ไม่ได้ใช้แทนหรอกครับ เป็นการรวมกันมากกว่าใช้ความสามารถของ printf เพื่อให้สะดวกในการแสดงผลบนจอ lcd ลองดูตัวอย่างของทั้งสอง code นี้ จะให้ผลลัพธ์เหมือนกันทั้งสอง code คือแสดงผล n = 1 ถึง n = 9 วนไปเรื่อยๆ
Syntax:
printf (string)
or
printf (cstring, values...)
}}--> }}--> or
printf (fname, cstring, values...)
fprintf (stream, cstring, values...)รายละเอียดของตัวแปรที่สามารถแสดงผลได้
C
Character
S
String or character
U
Unsigned int
x
Hex int (lower case output)
X
Hex int (upper case output)
D
Signed int
e
Float in exp format
f
Float
Lx
Hex long int (lower case)
LX
Hex long int (upper case)
lu
unsigned decimal long
ld
signed decimal long
%
Just a %
#include <16f877.h>#fuses HS,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP#use delay(clock=20000000)#define use_portb_lcd#include void main() { int count;lcd_init(); while(1){ for(count=0;count<=9;count++){ lcd_putc("fn = "); lcd_putc(count+'0'); delay_ms(1000); } };}ตัวอย่างนี้ใช้ lcd_putc เท่านั้น ข้อดีคือใช้หน่วยความจำน้อย #include <16f877.h>#fuses HS,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP#use delay(clock=20000000)#define use_portb_lcd#include void main() { int count;lcd_init(); while(1){ for(count=0;count<=9;count++){ printf(lcd_putc,"fn = %u",count); delay_ms(1000); } };}แบบนี้จะใช้หน่วยความจำมากกว่าหน่อยครับ แต่สะดวกดี เอ้าไปอ่านรายละเอียดเพิ่มเติมกันที่คำสั่ง print เอาเองละกัน


ได้มาจาก http://loveyouveryday.blogspot.com/2009/07/1.html


 

ด้วยฟังค์ชั่น ตอบด่วน คุณสามารถใช้โค๊ดและ เครื่องหมายแสดงอารมณ์ได้ เหมือนการตั้งกระทู้ธรรมดา แต่สามารถทำได้สะดวกกว่า

ระวัง: หัวข้อนี้ไม่มีการอัพเดทมานานถึง 120 วัน

แจ้งเตือน: โพสของคุณจะไม่แสดงจนกว่าผู้ดูแลจะอนุมัติ.
ชื่อ: อีเมล์: