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

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

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

wscanf () прототип

 int wscanf (const char * format,…);

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

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

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

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

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

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

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

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t ch; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Enter a wide character: "); wscanf(L"%lc",&ch); if (iswalnum(ch)) wcout << ch << L" is alphanumeric." << endl; else wcout << ch << L" is not alphanumeric." << endl; return 0; )

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

 Введите широкий символ: ∭ ∭ не является буквенно-цифровым.

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