Функцията vfscanf () в C ++ се използва за четене на данните от файлов поток.
Функцията vfscanf () е дефинирана в заглавния файл.
прототип на vfscanf ()
int vfscanf (FILE * поток, const char * формат, va_list vlist);
Функцията vfscanf () чете данните от потока на файловия поток и съхранява стойностите в съответните местоположения, както е дефинирано от vlist.
vfscanf () Параметри
- stream: Въведете поток от файлове, от който да четете данните.
- формат: Указател на символен низ с край до нула, който указва как да се чете въведеното. Състои се от спецификатори на формат, започващи с%.
- vlist: Списък с променливи аргументи, където трябва да се съхраняват стойностите Форматният
низ има следните части:- Небели символи с изключение на%, всеки от които консумира по един идентичен знак от входния поток. Това може да доведе до неуспех на функцията, ако следващият символ в потока не се сравнява равен.
- Пробел: Всички последователни пробели се третират като единични пробели. Освен това „ n“, „ t“ и „“ се считат за еднакви.
- Спецификация на преобразуването: Той следва следния формат:
- Първоначален% знак, който определя началото
- По избор *, наречен знак за потискане на заданието. Ако този знак присъства, vfscanf () не присвоява резултата на нито един аргумент за получаване.
- Незадължително положително цяло число, което указва максималната ширина на полето. Той определя максималния брой знаци, които vfscanf () е разрешено да използва, когато извършва преобразуването, посочено от текущата спецификация на преобразуване.
- Незадължителен модификатор на дължина, указващ размера на приемащия аргумент.
- Спецификатор на формат за преобразуване.
Форматизатор Описание % Съвпада с буквалния% ° С Съвпада с един или няколко знака. Ако ширината е дефинирана, съвпада точно с ширината. с Съвпада с последователни символи без интервали. Ако ширината е дефинирана, съвпада точно с символите за ширина или докато не бъде намерено първото празно пространство. (комплект) Съответства на непразна последователност от символи от дадения набор от символи. Ако присъства в началото на набора, тогава всички символи, които не са в набора, са съвпадащи. д Съответства на десетично цяло число. i Съвпада с цяло число. o Съответства на неподписано осмично цяло число. X или x Съответства на неподписано шестнадесетично цяло число. u Съответства на неподписано цяло десетично число. A или a, E или e, F или f, G или g Съвпада с число с плаваща запетая. н Връща броя на прочетените до момента знаци. стр Съответства на дефинирана от изпълнение последователност от символи, дефинираща указател.
Така че общият формат на спецификатора на формата е:Спецификатор% (*) (width) (length)
- vlist: Списък с аргументи за получаване на входовете.
vfscanf () Върната стойност
- При успех функцията vfscanf () връща броя на аргументите, които са били успешно прочетени.
- При неуспех EOF се връща.
Пример: Как работи функцията vfscanf ()?
#include #include void read(FILE* fp, const char * format,… ) ( va_list args; va_start (args, format); vfscanf (fp, format, args); va_end (args); ) int main () ( char myFriends(5)(20) = ("Robert", "Syd", "Brian", "Eddie", "Ray"); FILE *fp = fopen("example.txt","w+"); char name(20); for (int i=0; i<5; i++) fprintf(fp, "%s ", myFriends(i)); rewind(fp); printf("Here are the list of my friends"); for (int i=0; i<5; i++) ( read(fp, "%s ", &name); printf("%s", name); ) fclose(fp); return 0; )
Когато стартирате програмата, възможният изход ще бъде:
Ето списъка с моите приятели Robert Syd Brian Eddie Ray