Model នៃ input និង output ត្រូវបានគាំទ្រដោយ standard library។ អក្សរដែលយើង input និង output គឺមានជាប់ជាមួយនូវ streams នៃអក្ខរទាំងអស់នោះ។ Text Stream គឺអក្សរទាំងឡាយដែលចែកចេញជាបន្ទាត់ ហើយគ្រប់បន្ទាត់ទាំងអស់មិនថា មាន ឬមិនមានអក្សរ (zero space or more characters) គឺមានភ្ជាប់ដោយ អក្សរនៃបន្ទាត់ថ្មីមួយ (a newline character)។ រាល់ការ input និង output គឺជាតួនាទីរបស់ library។ Standard library ផ្ដល់នូវ functions សម្រាប់ read និង write មួយតួអក្សរម្ដងដោយ getchar និង putchar។ getchar ប្រើសម្រាប់ចាប់យកអក្សរដែលបានវាយបញ្ចូលពី text stream ហើយបោះតម្លៃនោះមកវិញដោយ putchar។ យើងអាចសរសេរបានថា៖
- c = getchar ()។ variable c ផ្ទុករាល់អក្សរដែលបានបញ្ចូលតាមរយៈក្ដាចុច (keyboard)
- putchar (c)។ បង្ហាញ (print) ម្ដងមួយតួអក្សរតាមលំដាប់លំដោយ។
6.1 File Copying
ខាងក្រោមនេះជាឧទាហរណ៍ ក្នុងការប្រើប្រាស់ getchar() និង putchar()។ យើងប្រើ getchar() ដើម្បីចាប់អក្សរពីក្ដារចុច បន្ទាប់មកយើងប្រើប្រាស់ while loop ដើម្បីបង្ហាញម្ដងមួយតួអក្សរទាំងនោះមកវិញតាមរយៈ putchar()។
Console:
or
or
Output:
សេចក្ដីពន្យល់៖
- != "not equal to" មិនស្មើ ហៅថា Relation operation។
- EOF "end of file" មានន័យថា មិនមែនចុងបញ្ចប់នៃ File ឬក្នុងឧទាហរណ៍ "I am using getchar() and putchar()" ដូច្នេះ EOF គឺខាងចុងនៃ "putchar()" បន្ទាប់ពី ")'
6.2 Character Counting
ខាងក្រោមនេះជាឧទាហរណ៍
Console:
Output:
សេចក្ដីពន្យល់៖
- ++nc ប្រើសម្រាប់បូកបន្ថែមចំនួនដោយ1 រហូតដល់ចំណុចបញ្ចប់ណាមួយ។ ++ ឬ -- អាចប្រើប្រាស់ខាងមុខ ឬខាងក្រោយក៏បាន ប៉ុន្តែមានការប្រើប្រាស់ខុសគ្នា។ ++nc ខុសពី nc++ ឬ --nc ខុសពី nc--។
- c = getchar ()។ variable c ផ្ទុករាល់អក្សរដែលបានបញ្ចូលតាមរយៈក្ដាចុច (keyboard)
- putchar (c)។ បង្ហាញ (print) ម្ដងមួយតួអក្សរតាមលំដាប់លំដោយ។
6.1 File Copying
ខាងក្រោមនេះជាឧទាហរណ៍ ក្នុងការប្រើប្រាស់ getchar() និង putchar()។ យើងប្រើ getchar() ដើម្បីចាប់អក្សរពីក្ដារចុច បន្ទាប់មកយើងប្រើប្រាស់ while loop ដើម្បីបង្ហាញម្ដងមួយតួអក្សរទាំងនោះមកវិញតាមរយៈ putchar()។
Console:
#include <stdio.h> int main() { int test;/*define variable test as an integer*/ test = getchar();/*assign all character from keyboard input to test*/ while (test != EOF)/*loop count all characters in test when it is not end of file*/ { putchar(test);/*read a character from test*/ test = getchar();/*print a character on the screen*/ } return 0; }
or
#include <stdio.h> int main() { int test;/*define variable test as an integer*/ while (test = getchar()!= EOF)/*loop count all characters in test when it is not end of file*/ { putchar(test);/*read and print a character from test*/ } return 0; }
or
#include <stdio.h> int main(void) { double nc; for (nc=0; getchar()!=EOF;++nc) { printf("%.0f\n",nc); } return 0; }
I am using getchar() and putchar() I am using getchar() and putchar()
សេចក្ដីពន្យល់៖
- != "not equal to" មិនស្មើ ហៅថា Relation operation។
- EOF "end of file" មានន័យថា មិនមែនចុងបញ្ចប់នៃ File ឬក្នុងឧទាហរណ៍ "I am using getchar() and putchar()" ដូច្នេះ EOF គឺខាងចុងនៃ "putchar()" បន្ទាប់ពី ")'
6.2 Character Counting
ខាងក្រោមនេះជាឧទាហរណ៍
Console:
#include <stdio.h> int main(void) { long nc; nc = 0; while (getchar()!=EOF) { ++nc;/*increase nc by 1*/ printf("%1d\n",nc); } return 0; }
Output:
hello 1 2 3 4 5 6
សេចក្ដីពន្យល់៖
- ++nc ប្រើសម្រាប់បូកបន្ថែមចំនួនដោយ1 រហូតដល់ចំណុចបញ្ចប់ណាមួយ។ ++ ឬ -- អាចប្រើប្រាស់ខាងមុខ ឬខាងក្រោយក៏បាន ប៉ុន្តែមានការប្រើប្រាស់ខុសគ្នា។ ++nc ខុសពី nc++ ឬ --nc ខុសពី nc--។