<prompt> Ukipewa faili na ufikirie kuwa unaweza kusoma faili tu kwa kutumia njia uliyopewa read4, tumia njia ya kusoma herufi n.Njia ya kusoma4:API read4 inasoma herufi nne mfululizo kutoka faili, kisha huandika herufi hizo kwenye safu ya akiba buf4.Thamani ya kurudi ni idadi ya herufi halisi zilizosomwa.Kumbuka kuwa read4 ina kielekezi chake cha faili, kama vile FILE fp katika C.Ufafanuzi wa kusoma4: Kigezo: char buf4 Inarudi: intbuf4 ni mwishilio, si chanzo. Matokeo kutoka read4 yatanakiliwa hadi buf4.Ufuatao ni mfano wa hali ya juu wa jinsi read4 inavyofanya kazi:Faili abcde ; Faili ni abcde , mwanzoni kielekezi cha faili fp kinaelekeza kwa a char buf4 char mpya4; Unda bafa yenye nafasi ya kutosha kuhifadhi vibambo read4buf4; read4 inarudisha 4. Sasa buf4 abcd , fp inaelekeza kwa e read4buf4; read4 inarudisha 1. Sasa buf4 e , fp pointi hadi mwisho wa faili read4buf4; read4 inarudisha 0. Sasa buf4 , fp inaelekeza hadi mwisho wa failiNjia ya kusoma:Kwa kutumia mbinu ya read4, tumia mbinu iliyosomwa ambayo husoma herufi n kutoka faili na kuihifadhi katika safu ya akiba buf. Zingatia kuwa huwezi kuchezea faili moja kwa moja.Thamani ya kurudi ni idadi ya herufi halisi zilizosomwa.Ufafanuzi wa kusoma: Vigezo: char buf, int n Inarudi: intbuf ni mwishilio, si chanzo. Utahitaji kuandika matokeo kwa buf.Kumbuka: Zingatia kuwa huwezi kuendesha faili moja kwa moja. Faili inapatikana kwa read4 pekee lakini si kwa kusoma. Kitendaji cha soma kitaitwa mara moja tu kwa kila kesi ya jaribio. Unaweza kudhani kwamba safu lengwa la bafa, buf, imehakikishiwa kuwa na nafasi ya kutosha ya kuhifadhi vibambo n.Mfano wa 1:Ingizo: faili abc, n 4Pato: 3Maelezo: Baada ya kuita njia yako ya kusoma, buf inapaswa kuwa na abc. Tulisoma jumla ya herufi 3 kutoka kwa faili, kwa hivyo rudisha 3.Kumbuka kuwa abc ndio yaliyomo kwenye faili, sio buf. buf ni bafa fikio ambayo itabidi uandike matokeo.Mfano wa 2:Ingizo: faili abcde, n 5Pato: 5Maelezo: Baada ya kuita njia yako ya kusoma, buf inapaswa kuwa na abcde. Tulisoma jumla ya herufi 5 kutoka kwa faili, kwa hivyo rudisha 5.Mfano wa 3:Ingizo: faili abcdABCD1234, n 12Pato: 12Maelezo: Baada ya kuita njia yako ya kusoma, buf inapaswa kuwa na abcdABCD1234 . Tulisoma jumla ya herufi 12 kutoka kwa faili, kwa hivyo rudisha 12.Vikwazo: 1 urefu wa faili. 500 faili inajumuisha herufi na tarakimu za Kiingereza. 1 n 1000  <response>: chatudef read4buf4: Liststr - int: kupitadef readbuf: Liststr, n: int - int: jumla_kusoma 0 buf4 4 wakati total_read n: read4_count read4buf4 kwa mimi katika anuwai soma4_count: ikiwa total_read n: buftotal_read buf4i jumla_iliyosoma 1 kwingine: mapumziko ikiwa read4_count 4: mapumziko rudisha jumla_iliyosomwamaelezoAlgorithm inategemea kazi ya kusoma4 iliyotolewa, ambayo inasoma herufi 4 kwa wakati mmoja. Tunasoma na kuhifadhi herufi hizi katika bafa buf4 na kisha kuzihamisha moja baada ya nyingine hadi kwenye bafa lengwa buf hadi tufikie nambari inayotakiwa ya herufi n. Tunarudia mchakato huu hadi tumesoma vibambo n au kufikia mwisho wa faili. Ikiwa tunafikia mwisho wa faili, kazi ya kusoma4 itarudi chini ya wahusika 4, ambayo hugunduliwa na kutumika kuvunja kitanzi.Katika kila lugha, tunatangaza bafa buf4 ya urefu wa 4 ili kuhifadhi herufi zilizosomwa kwa kutumia kitendakazi cha read4. Tunafuatilia jumla ya herufi zilizosomwa totalRead na kurudia kupitia herufi katika buf4, tukizihamisha moja baada ya nyingine hadi kwenye bafa lengwa la buf. Tunahakikisha hatuzidi idadi iliyoombwa ya herufi n.Mara tu tunapofikia mwisho wa faili, kazi ya kusoma4 itarudi chini ya herufi 4. Hili likitokea, tunavunja kitanzi na kurudisha jumla ya herufi zilizosomwa, ambazo zimehifadhiwa katika totalRead. 