មេរៀនទី៣: បញ្ចូល និង បញ្ចេញទិន្នន័យ

មេរៀនទី៣: បញ្ចូល និង បញ្ចេញទិន្នន័យ DATA Input & Output

I. អនុគមន៍   printf ( ) and putchar ( ) :

+  printf ( ) : ជា Function សំរាប់  Print ទិន្នន័យដែលនៅក្នុងសញ្ញា “ … ” មកលើ  Screen output ។ ពិនិត្យឧទាហរណ៍ខាងក្រោម ៖

# include < stdio.h >

# include < conio.h >

main ( )

{

int  n; float  x; char ch;

n = 5; x = 8.2; ch = ‘A’ ;
C C++

Note :  + %d ដែល % ជា Format code និង d ជា Conversion code  ។

+        បើចង់   print    Expression        (Variable    )    នោះយើងត្រូវកំណត់ Format អោយតំលៃនៃកន្សោមនោះ ។

តារាង Format Code :

 

Format Code

អត្ថន័យ

%c Print បណ្ដាចំនួនជា characters short, int
%d Print បណ្ដាចំនួន int ,  short
%u Print បណ្ដាចំនួន គμានសឭាា,  unsigned int,
%ld Print បណ្ដាចំនួន long
%X, %x Print បណ្ដាចំនួនគត់ខាងក្រោមរាង hexa
%o Print បណ្ដាចំនួនគត់ខាងក្រោមរាង Octab ( គោល 8)
%f     %lf Print  float,   double
%s Print string

C C++

* បើចង់  print % ត្រូវសរសេរ

printf (“ 50 %%” );  Æ  50%

+ print សំលេង Beep :

printf (“ \a\a Enter Value :”);

+putchar ( c) : ជា Function សំរាប់ print character មួយមកលើ  screen  ។

ch = ‘a’;  putchar (ch); Æ a

+ puts : សំរាប់ Print string មកលើ screen, ហើយ Cursor និងចុះបន្ទាត់,

puts (“this is a character”) ;

II. Print Data into printer :

fprintf (stdprn, “ Print Data on printer!”); និង print ទិន្នន័យទៅក្នុង printer ។ stdprn :សំរាប់បញ្ជាកុំព្យូទ័រអោយ print ទៅ printer ។

III.   scanf( ) function :

ជា Function សំរាប់ Read data from keyboard

Ex1:  int n,p;

scanf (“%d%d”, &n, &p);

Ex2:  char c;

int n;

scanf (“%c%d”,&c,&n);

បើ ៖ Enter a25

Result

c = ‘a’ , n = 25

a^^25 c = ‘a’ , n = 25
តែបើ ៖ Ex3: char c;
int n;scanf (“ %d %c”, &n, &c);
Enter Result
12^a Æ n = 12; c = ‘^’; (មិនមែន = ‘a’ ទេ )

Ex4: char c;

int n;

scanf (“ %d %c”, &n, &c);

Enter Result
12^a Æ n = 12; c = ‘a’;
12^^a Æ n = 12; c = ‘a’;

* Macro     getchar( ); សំរាប់ Read character មួយពី Keyboard ។

Ex:     c = getchar ( );

Ex:    # include <stdio.h>

# include <conio.h>

main ( )

{ clrscr ();

int n,p;

printf (“ Enter n = ”); scanf (“ %d”, &n) ;

while (getchar ( )! = ‘\n’);

printf (“ thank you for your Enter Value %d \n”, n) ;

printf (“ Enter P =”); scanf (“ %d”, &p) ;

while (getchar ( ) ! = ‘\n’) ;

printf (“thank you for your Enter Value %d \n”, p) ;

getch();  }

Statement : while (getchar ( ) != ‘n\’); មានន័យថា ៖ Read character រហូតដល់  Enter ទើបឈប់

Note :        scanf (“%d”,&n);     Readln (n) ក្នុង Pascal ។

<=>

while (getchar( ) ! = ‘\n’);   (Read តំលៃហើយចុះបន្ទាត់តែម្ដង )

យើងអាចជំនួស while (getchar ( ) ! = ‘\n’); ដោយ gets (ss);

scanf (“%d”, &n);

gets (ss);

ដើម្បី chear stdin យើងប្រើ  Statemenut fflush(stdin);

* Control តើមាន character Read បញ្ចូល ឬអត់ ៖ kbhit ( ):

Function នេះនឹងត្រួតពិនិត្យមើល,មាន Read character ណាពី  Keyboard ឬអត់, ហើយដែល Character កំពុងស្ថិតនៅក្នុង memory   ។   kbhit ( ) សមមូល  និង  keypressed ក្នុង  Pascal   ។ វាផ្ទុកក្នុង  <conio.h>

Ex:

 Note :


# include <conio.h>

# include <stdio.h>

int main (void )

{ clrscr () ;

cprintf (“\r\npress any key to continue :”); while(!kbhit ( ) );    /* No action */ cprintf (“\r\n you have press a key ! \r\n”);

getch ( );

return (0);

}

-cprintf() :ជា  Function <=> printf, ក្នុង cprintf => អត់ស្គាល់  \n ជាសញ្ញាចុះដើមបន្ទាត់ទេ, ត្រូវប្រើ\r\n  ទើបស្គាល់ថា ចុះដើមបន្ទាត់ ។

* getch ( ) Function (សមមូលនឹង Readkey ក្នុង Pascal )

getche ( ) Function ប្រភេទ  Macro Read character នីមួយៗពី  keyboard ។     character

Read ពី keyboard ត្រូវបានសំដែងមកពី screen ។

ចំណែក Function getch ( ) ក៏ជាប្រភេទ  Macro Read character ពី keyboard ដែរ តែ ,Character

ដែល Read ពី keyboard នោះមិនសំដែងមកលើ screen ទេ  ។ ( សមមូល  និង Readkey ក្នុង Pascal )

។ ដូច្នេះយើងអនុវត្ដន៏ Function getch( ) ក្នុងកមμវិធី  Password   ។ ម្យ៉ាងទៀតយើងប្រើ   Functionនេះនៅ  ចុងនៃគ្រប់កមμវិធីទាំង អស់ដើម្បីទប់  screen output ។

+ Function getche( ) និង getch( ) ដូចគ្នាត្រង់ Read មួយ character ពី keyboard ដោយមិនចាំ

Enter, តែខុសគ្នាត្រង់ Function getche (   )និងសំដែង character ដែល  Read ពី keyboard មកលើ screen ។

+   Function getche( ) និង  getche( ) : Read ត្រង់ពី  keyboard   តែម្ដង,  ដោយមិនឆ្លងកាត់ stdin ទេ  ។

ដើម្បី Read password, សូមពិនិត្យ Example ខាងក្រោមដែលមានប្រើ Function get pass( ):

Ex:     Read password :

# include < stdio.h>

# include <conio.h>

int main (void)

{

char    *password; clrscr ();

password = getpass (“Enter password :”);

cprintf (“ password is : %s \r\n”, password);

getch( );

return (0);

}

* gets ( ) Function : ( សមមូល Readln(st) ក្នុង Pascal )

gets ( ) សំរាប់ Read string ពី keyboard រហូតដល់ Enter ទើបឈប់  ។ បន្ទាប់ពី  Read រួចវាថែម

សញ្ញា  បញ្ចប់ បន្ទាត់ (\0) នៅខាងចុង String ។

Ex:

# include < stdio.h>

# include <  conio.h>

main ( )

{  clrscr ():

char  name[80];

printf (“\n Enter your name :”);

gets (name);

printf (“\n your name is %s”, name );

getch ( );

return (0);

}

 

Note  :  Programmer  បើចង់ភ្ជាប់ការងារក្នុងការ  Readnumber  និង   String  គប្បីប្រើប្រាស់

ដំណាក់ ការ ខាងក្រោម  ៖

+ Read ចំនួនគត់ ៖ បន្ទាប់ពី  Enter;

gets (str );

i = atoi (str); /* a to int */

+ Read ចំនួនពិត ៖ បន្ទាប់ពីចុច Enter;

j = atof (str); /* a to float */

Total Function input / output Data ក្នុង language :

+ getchar ( )and putchar( ): (macro) Read និង write character មួយពី keyboard ។

+ gets ( ) and puts ( ): Read និង write string ( គិតទាំងសញ្ញា space ) ។

+ scanf ( ): Read តាម format Code ( %), តាម Conversion code (d)

+ printf ( ): write Data តាម format code, Conversion code ។

+ getche()  និង getch( ): Read character ត្រង់ពី Keyboard ដោយមិនចាំ Enter, មិនឆ្លងកាត់ stdin ។

* gotoxy (int x, int y );

នាំ Cursor ទៅទីតាំង x, y នៃ screen output ។ x = 1 ដល់ 80 , y = 1 ដល់ 25 ។

Ex:     # include < stdio.h>

# include <conio.h>

int main (void)

{

clrsrcr( )

gotoxy (35,12); cprintf (“Hello world !!!”);

getch ( );

return (0);

}

™         clrscr ( ); (clear screen )

ជា Function សំរាប់លុបសំអាត screen output, បន្ទាប់មកវានាំ Cursor ទៅទីតាំង (1, 1) ។

clreol ( ): (Clear end of line )

ជា Function លុបបណ្ដា character ពីចំនុច Current cursor ទៅចុងបន្ទាត់ ។

textcolor (n) និង textbackground (n): ដាក់ពណ៏ text និងពណ៏ Background

តារាង Colors :

Const

Value

BLACK

0

BLUE

1

GREEN

2

CYAN

3

RED

4

MAGENTA

5

BROWN

6

LIGHT GRAY

7

DARKGRAY

8

LIGHT BLUE

9

LIGHT GREEN

10

LIGHT CYAN

11

LIGHT RED

12

LIGHT MAGENTA

13

YELLOW

14

WHITE

15

BLINK

128

Note: ចំពោះ textbackground តំលៃ n គិតពី ( 0Æ 8 ) ។

Function lowvideo ( ) និង normvideo( ) : បញ្ជាពន្លឺ Text, lowvideo( ) ធ្វើអោយពន្លឺរបស់ text ខ្សោយៗទៅ normvideo( ) ធ្វើអោយពន្លឺរបស់ text ធមμតាឡើងវិញ  ។

Ex:     សរសេរពាក្យ WELCOME ( នោះអក្សរ W E មានពន្លឺ ភ្លឺ )

# include < stdio.h>

# include <conio.h>

main( );

{ clrscr () ;

highvideo( ); cprintf (“W”); lowvideo( );  cprintf (“ ELCOM”); highvideo( ); cprintf (“E”);

getch( );

return(0);

}

wherex និង wherey : បញ្ជាក់ប្រាប់ កូអរដោនេរបស់ Current cursor ។

Ex:     # include < stdio.h>

# include <conio.h>

 

int main (void)

{

clrscr ( );

gotoxy (10,10);

printf (“coordinate x :%d y :%d \n”, wherex, wherey);

getch( ); return(0);

}

 window (int x1, int y1, int x2, int y2 );

ជា Function បង្កើត text window ដែលមានកូអរដោនេ មុំកែងខាង លើផ្នែកខាងឆ្វេង ជាចំនុច (x1,y1) និង មុំកែងខាងក្រោមផ្នែកខាងស្ដាំ (x2, y2) ហើយ statement print data on screen និង print data មកលើ Text window ដែលទើបនឹងបង្កើតនេះ ។

Ex:     # include <stdio.h>

# include <conio.h>

int  main(void)

{

window (10, 10, 40, 11); textcolor (YELLOW);

textbackground (BLUE); clrscr ();

cprintf(“This is a test \n”);

getch( );

return(0);

}

លំហាត់អនុវត្ដន៍

 1.   ចូរសរសេរ Screen output នៃ program ខាងក្រោម ៖

# include <stdio.h>

# include <conio.h>

main ( )

{

int        n = 345;

int        p = 5;

float     x = 34.5678 ;

printf (“A :%d %f \n”, n,x ); printf (“B :%4d %10f \n”, n,x ); printf (“C :%2d %3f \n”, n,x );

printf (“D :%10.3f %10.3ef \n”, x,x );

printf (“E :%*d \n”, p,n ); printf (“F :%*.*f \n”, 12,5,x ); getch ( );

return (0);

}

2.   ចូរប្រាប់ពីតំលៃនៃ Variable ប្រភេទ int គឺ n និង p ក្រោយពីអនុវត្ដន៏ Statement ខាងក្រោមៈ

scanf (“%4d %2d”, &n, &p );  ជាមួយទិន្នន័យដែលវាយបញ្ចូលដូចខាងក្រោម ៖

(សញ្ញា ^ ជាសញ្ញាដកឃ្លា )

a)   12^ 45 b)   123456

c)   123456^7 d)   1^458

e)   ^^^4567^^891

3. ចូរសរសេរ screen output នៃកមμវិធីខាងក្រោម ៖

# include <stdio.h>

# include <conio.h>

main ( )

{

char firstname [ ]= “ Chan ” ; char lastname [ ] = “ Dara” ; float money = 5000 ;

clrscr ( ) ; gotoxy(10,10);

printf (“ %s %s, you will get $ %6.2f \n ”, firstname, lastname, money) ;

getch ( ) ;

return (0 ) ;

}

4. ចូរសរសេរ screen output នៃកមμវិធីខាងក្រោម ៖

# include <stdio.h>

# include <conio.h>

main ( )

{ int letter ;

/* print Value of code ASCII of characters */

letter = ‘e’ ;

printf (“Code ASCII of %c is %d \n” , letter , letter );

getch ( );

return (0);

}

5. ហេតុអ្វីគេនិយមប្រើ Function gets ( ) ជាង Function scanf ( )?

6. ចូររកកន្លែងខុសនៃ កមμវិធីខាងក្រោម ៖

main ( )

{

char str [ ] = {‘H’ , ‘e’ , ‘l’ , ‘l’ , ‘o’ };

puts (str);

getch ( );

return (0);

}