Funkcija vfprintf () C ++ tiek izmantota, lai rakstītu formatētu virkni failu straumē.
vfprintf () prototips
int vfprintf (FILE * straume, const char * formāts, va_list vlist);
vfprintf()
Funkcija raksta virkni norādīja, ko formātu failu plūsmas plūsmā. Virknes formātā var būt formāta specifikatori, kas sākas ar% un tiek aizstāti ar mainīgo vērtībām, kuras tiek nodotas kā saraksta vlist.
Tas ir definēts galvenes failā.
vfprintf () parametri
- straume: izvades faila straume, lai ierakstītu rezultātu.
- formāts: rādītājs nulles izbeigtai virknei, kas tiek ierakstīta failu straumē. Tas sastāv no rakstzīmēm un izvēles formātu specifikatoriem, kas sākas ar%.
Formātu specifikatori tiek aizstāti ar attiecīgo mainīgo vērtībām, kas seko formāta virknei.
Formāta norādītājam ir šādas daļas:
- Vadošā% zīme
- Karodziņi: pēc izvēles viens vai vairāki karodziņi, kas maina reklāmguvuma darbību.
- -: kreisais pamato rezultātu laukā. Pēc noklusējuma tas ir pareizi pamatots.
- +: Rezultāta zīme ir pievienota vērtības sākumam pat pozitīvu rezultātu iegūšanai.
- Telpa: ja nav zīmes, rezultāta sākumam tiek pievienota atstarpe.
- #: Tiek veikta alternatīva konversijas forma.
- 0: to lieto vesels skaitlis un peldošā komata skaitlis. Ciparu ierakstīšanai, nevis atstarpei, tiek izmantotas nulles.
- Platums: izvēles * vai vesela skaitļa vērtība, ko izmanto, lai norādītu minimālā platuma lauku.
- Precizitāte: izvēles lauks, kas sastāv no: seko * vai vesels skaitlis vai nekas, lai precizētu precizitāti.
- Garums: izvēles garuma modifikators, kas norāda argumenta lielumu.
- Specifikators: reklāmguvumu formāta specifikators. Pieejamie formātu specifikatori ir šādi:
Formāta specifikators Apraksts % Izdrukas% c Raksta vienu rakstzīmi s Raksta rakstzīmju virkni d vai i Pārvērš parakstītu veselu skaitli decimāldaļā o Pārvērš neparakstītu veselu skaitli oktālā attēlojumā X vai x Pārvērš neparakstītu veselu skaitli heksadecimālā attēlojumā u Pārvērš neparakstītu veselu skaitli decimāldaļā F vai f Pārvērš peldošā komata skaitli decimāldaļā E vai e Pārvērš peldošā komata skaitli decimāldaļskaitļa eksponenta apzīmējumā A vai a Pārvērš peldošā komata skaitli par heksadecimālo eksponentu G vai g Pārvērš peldošā komata skaitli decimāldaļās vai decimāldaļās eksponentu apzīmējumos n Atgriež funkcijai līdz šim šim izsaukumam rakstīto rakstzīmju skaitu. Rezultāts tiek ierakstīts vērtībā, uz kuru norāda arguments lpp Raksta ieviešanā definētu rakstzīmju secību, kas nosaka rādītāju. Tātad formāta specifikatora vispārējais formāts ir:
%(flags)(width)(.precision)(length)specifier
- vlist: Argumentu saraksts, kas satur ierakstāmos datus.
vfprintf () Atgriežamā vērtība
Ja tas izdosies, vfprintf()
funkcija atgriež rakstīto rakstzīmju skaitu. Neveiksmes gadījumā tā atgriež negatīvu vērtību.
Piemērs: Kā darbojas funkcija vfprintf ()
#include #include void write(FILE* fp, const char *fmt,… ) ( va_list args; va_start(args, fmt); vfprintf(fp, fmt, args); va_end(args); ) int main () ( FILE *fp = fopen("data.csv","w"); char name(5)(50) = ("John","Harry","Kim","Yuan","Laxmi"); int age(5) = (13,41,26,21,32); write(fp, "%s,%s", "name", "age"); for (int i=0; i<5; i++) write(fp, "%s,%d", name(i), age(i)); return 0; )
Palaidot programmu, failā data.csv tiks ierakstīts:
vārds, vecums Džons, 13 Harijs, 41 Kims, 26 Juans, 21 Laxmi, 32 gadi