C input & output


Apabila kita merujuk kepada input, ini bermakna mengisi beberapa data ke dalam program. Input boleh dalam bentuk fail atau dari baris arahan. Bahasa C menyediakan satu siri fungsi terbina dalam untuk membaca input yang diberikan dan mengisinya ke dalam program seperti yang diperlukan.

Apabila kita menyebut output ia bermaksud memaparkan beberapa data pada skrin, pada pencetak atau dalam mana-mana fail. Bahasa C menyediakan satu siri fungsi terbina dalam untuk mengeluarkan data ke skrin komputer dan menyimpan data ke fail teks atau fail binari.

Fail Standard

Bahasa C menganggap semua peranti sebagai fail. Jadi peranti (seperti monitor) diperlakukan dengan cara yang sama seperti fail. Tiga fail berikut dibuka secara automatik apabila program dilaksanakan untuk menyediakan akses kepada papan kekunci dan skrin.

标准文件文件指针设备
标准输入stdin键盘
标准输出stdout屏幕
标准错误stderr您的屏幕

Penunjuk fail ialah cara untuk mengakses fail Bahagian ini akan menerangkan cara membaca nilai dari skrin dan cara untuk mengeluarkan hasil ke skrin.

Fungsi getchar() & putchar()

int getchar(void) Fungsi membaca aksara yang tersedia seterusnya daripada skrin dan mengembalikannya sebagai integer. Fungsi ini hanya akan membaca satu aksara pada satu masa. Anda boleh menggunakan kaedah ini dalam gelung untuk membaca berbilang aksara daripada skrin. Fungsi

int putchar(int c) mengeluarkan aksara ke skrin dan mengembalikan aksara yang sama. Fungsi ini hanya akan mengeluarkan satu aksara pada satu masa. Anda boleh menggunakan kaedah ini di dalam gelung untuk mengeluarkan berbilang aksara pada skrin.

Sila lihat contoh di bawah:

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

   printf( "Enter a value :");
   c = getchar( );

   printf( "\nYou entered: ");
   putchar( c );   return 0;}

Apabila kod di atas disusun dan dilaksanakan, ia akan menunggu untuk anda memasukkan beberapa teks Apabila anda memasukkan teks dan menekan kekunci enter, The program akan diteruskan dan hanya akan membaca satu aksara sahaja, seperti yang ditunjukkan di bawah:

$./a.out<b>Enter a value :</b> this is test<b>You entered:</b> t

fungsi gets() & puts()

char *gets(char *s) Fungsi membaca garis dari stdin ke dalam penimbal yang ditunjuk oleh s sehingga penamat atau EOF. Fungsi

int puts(const char *s) menulis rentetan s dan aksara baris baharu mengekori kepada stdout.

#include <stdio.h>int main( ){   char str[100];

   printf( "Enter a value :");
   gets( str );

   printf( "\nYou entered: ");
   puts( str );   return 0;}

Apabila kod di atas disusun dan dilaksanakan, ia menunggu untuk anda memasukkan beberapa teks, apabila anda memasukkan teks dan tekan enter, atur cara meneruskan dan membaca keseluruhan baris sehingga baris itu Pada penghujungnya, paparan adalah seperti berikut:

$./a.out<b>Enter a value :</b> this is test<b>You entered:</b> This is test

fungsi scanf() dan printf()

int scanf(const char *format, ...) fungsi daripada strim input standard stdin membaca input dan menyemak imbas input mengikut format yang disediakan.

int printf(const char *format, ...) Fungsi menulis output ke aliran output standard stdout dan menghasilkan output mengikut format yang disediakan.

format boleh menjadi rentetan pemalar yang ringkas, tetapi anda boleh menentukan %s, %d, %c, %f, dsb. untuk mengeluarkan atau membaca rentetan, integer, aksara masing-masing atau terapung nombor titik. Terdapat banyak pilihan pemformatan lain yang tersedia yang boleh digunakan mengikut keperluan anda. Untuk butiran lengkap, lihat manual rujukan untuk fungsi ini. Sekarang mari kita mendalami pemahaman kita melalui contoh mudah berikut:

#include <stdio.h>int main( ){   char str[100];   int i;

   printf( "Enter a value :");
   scanf("%s %d", str, &i);

   printf( "\nYou entered: %s %d ", str, i);   return 0;}

Apabila kod di atas disusun dan dilaksanakan, ia akan menunggu untuk anda memasukkan beberapa teks, apabila anda memasukkan teks dan menekan kekunci enter , program meneruskan dan membaca input, memaparkan ini:

$./a.out<b>Enter a value :</b> seven 7<b>You entered:</b> seven 7

Di sini, perlu diperhatikan bahawa scanf() menjangkakan input berada dalam format yang sama seperti %s dan %d yang anda berikan, yang bermaksud anda Input yang sah mesti diberikan, seperti "integer rentetan", jika anda memberikan "rentetan rentetan" atau "integer integer" ia akan dianggap input buruk. Di samping itu, apabila membaca rentetan, scanf() akan berhenti membaca sebaik sahaja ia menemui ruang, jadi "ini adalah ujian" ialah tiga rentetan ke scanf().