C ++ fwscanf () - Стандартная библиотека C ++

Функция fwscanf () в C ++ считывает широкий символ из файлового потока.

Функция fwscanf () определена в заголовочном файле.

fwscanf () прототип

 int fwscanf (ФАЙЛ * поток, const wchar_t * формат,…);

Функция fwscanf () считывает данные из потока файлового потока и сохраняет значения в соответствующие переменные.

Параметры fwscanf ()

  • stream: поток входного файла для чтения данных.
  • формат: указатель на строку символов с завершающим нулем, которая указывает, как читать ввод. Он состоит из спецификаторов формата, начинающихся с%.
    Строка формата состоит из следующих частей:
    • Символы без пробелов, кроме%, каждый из которых использует один идентичный символ из входного потока. Это может привести к сбою функции, если следующий символ в потоке не окажется равным.
    • Пробельный символ: все следующие друг за другом пробельные символы рассматриваются как один пробельный символ. Далее, ' n', ' t' и '' считаются одинаковыми.
    • Спецификация преобразования: имеет следующий формат:
      • Начальный символ%, указывающий начало
      • Необязательный *, называемый символом подавления присваивания. Если этот символ присутствует, fwscanf () не присваивает результат ни одному принимающему аргументу.
      • Необязательное положительное целое число, указывающее максимальную ширину поля. Он определяет максимальное количество символов, которое fwscanf () может использовать при выполнении преобразования, указанного в текущей спецификации преобразования.
      • Необязательный модификатор длины, определяющий размер принимающего аргумента.
      • Спецификатор формата преобразования.
    Спецификаторы формата
    Описатель формата Описание
    % Соответствует буквальному%
    c Соответствует одному или нескольким символам. Если ширина определена, точно соответствует ширине символов.
    s Соответствует последовательным непробельным символам. Если ширина определена, соответствует точно символам ширины или до тех пор, пока не будет найден первый пробел.
    (набор) Соответствует непустой последовательности символов из данного набора символов. Если присутствует в начале набора, то совпадают все символы, не входящие в набор.
    d Соответствует десятичному целому числу.
    я Соответствует целому числу.
    о Соответствует восьмеричному целому числу без знака.
    X или x Соответствует шестнадцатеричному целому числу без знака.
    ты Соответствует десятичному целому числу без знака.
    A или a, E или e, F или f, G или g Соответствует числу с плавающей запятой.
    п Возвращает количество прочитанных символов.
    п Соответствует последовательности символов, определенной реализацией, определяющей указатель.

    Итак, общий формат спецификатора формата:
     % (*) (ширина) (длина) спецификатор
  • …: Другие дополнительные аргументы для получения данных. Они появляются в последовательности согласно спецификатору формата.

fwscanf () Возвращаемое значение

  • Функция fwscanf () возвращает количество успешно назначенных аргументов приема.
  • Если сбой происходит до того, как был назначен первый аргумент приема, возвращается EOF.

Пример: как работает функция fwscanf ()?

 #include #include #include #include int main() ( FILE *fp = fopen("example.txt","w+"); wchar_t str(10), ch; setlocale(LC_ALL, "en_US.UTF-8"); fwprintf(fp, L"%ls %lc", L"Summation", L'u2211'); fwprintf(fp, L"%ls %lc", L"Integral", L'u222b'); rewind(fp); while((fwscanf(fp, L"%ls %lc", str, &ch))!=EOF) ( wprintf(L"%lc is %ls", ch, str); ) fclose(fp); return 0; )

Когда вы запустите программу, возможный результат будет:

 Является суммированием ∫ является интегральным

Интересные статьи...