Ц ++ вфвсцанф () - Ц ++ стандардна библиотека

Функција вфвсцанф () у језику Ц ++ користи се за читање широког низа знакова из тока датотека.

Функција вфвсцанф () је дефинисана у датотеци заглавља.

прототип вфвсцанф ()

 инт вфвсцанф (ФИЛЕ * ток, цонст вцхар_т * формат, ва_лист влист);

Функција вфвсцанф () чита податке из тока тока датотека и чува вриједности на одговарајућим локацијама како их дефинише влист.

вфвсцанф () Параметри

  • стреам: Унесите ток датотеке из којег ћете читати податке.
  • формат: Показивач на низак завршени низ широких знакова који одређује како се чита улаз. Састоји се од спецификатора формата који почињу са%.
    Низ формата има следеће делове:
    • Знакови који нису размаци, осим% од којих сваки троши по један идентичан знак из улазног тока. То може проузроковати неуспех функције ако се следећи знак у току не упореди са једнаким.
    • Размак: Сви узастопни размаци се третирају као један размак. Даље, ' н', ' т' и '' сматрају се истим.
    • Спецификација конверзије: Следи следећи формат:
      • Иницијални% знак који специфицира почетак
      • Опционални * који се назива знак за сузбијање задатка. Ако је присутан овај знак, вфвсцанф () не додељује резултат ниједном аргументу пријема.
      • Опционални позитивни целобројни број који специфицира максималну ширину поља. Одређује максималан број знакова који вфвсцанф () сме да користи приликом извршавања претворбе одређене тренутном спецификацијом претворбе.
      • Опционални модификатор дужине који специфицира величину аргумента који прима.
      • Спецификатор формата конверзије.
    Спецификатори формата
    Спецификатор формата Опис
    % Поклапа се са дословним%
    ц Поклапа се са једним знаком или више знакова. Ако је ширина дефинисана, тачно се подудара са знаковима ширине.
    с Подудара се са узастопним знаковима који нису размаци. Ако је ширина дефинисана, тачно се подудара са знаковима ширине или док се не нађе први размак.
    (комплет) Подудара се са празним низом знакова из датог скупа знакова. Ако је присутан на почетку скупа, онда се подударају сви знакови који нису у скупу.
    д Поклапа се са децималним целим бројем.
    и Поклапа се са целим бројем.
    о Поклапа се са непотписаним осминским целим бројем.
    Кс или к Подудара се са непотписаним хексадецималним целим бројем.
    у Подудара се са непотписаним децималним целим бројем.
    А или а, Е или е, Ф или ф, Г или г Подудара се са бројем са покретном зарезом.
    н Приказује број до сада прочитаних знакова.
    стр Поклапа се са дефинисаном имплементацијом секвенцом знакова која дефинише показивач.

    Дакле, општи формат спецификатора формата је:
     Спецификатор% (*) (видтх) (ленгтх)
  • влист: Листа аргумената за пријем улаза.

вфвсцанф () Повратна вредност

  • Ако је успешна, функција вфвсцанф () враћа број успешно прочитаних аргумената.
  • У случају неуспеха, враћа се ЕОФ.

Пример: Како функционише вфвсцанф () функција?

 #include #include #include #include void read( FILE *fp, const wchar_t* format,… ) ( va_list args; va_start (args, format); vfwscanf (fp, format, args); va_end (args); ) int main () ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t symbol() = L"u0915u0916u0917u0918u0919"; wchar_t names(5)(5) = (L"Ka", L"Kha", L"Ga", L"Gha", L"Nga"); FILE *fp = fopen("example.txt","w+"); for (int i=0; i<5; i++) fwprintf(fp, L"%lc %ls ", symbol(i), names(i)); rewind(fp); wchar_t ch, str(5); for (int i=0; i<5; i++) ( read(fp, L"%lc %ls ", &ch, str); wprintf(L"%lc - %ls", ch, str); ) fclose(fp); return 0; )

Када покренете програм, могући излаз ће бити:

 क - Ка ख - Кха ग - Га घ - Гха ङ - Нга

Занимљиви Чланци...