C ++ sscanf () - C ++ стандартна библиотека

Функцията sscanf () в C ++ се използва за четене на данните от буфер на низове.

sscanf () прототип

 int sscanf (const char * буфер, const char * формат, …);

Най sscanf()функция чете данни чете данните от буфера и съхранява стойностите на съответните променливи.

Той се определя в заглавния файл.

sscanf () Параметри

  • buffer: Указател към символен низ с краен знак, от който да се четат данните.
  • format: Указател към символен низ с край до нула, който указва как да се чете въведеното. Състои се от спецификатори на формат, започващи с%.

    Форматният низ има следните части:

    • Non whitespace charactersс изключение на%, всеки от които консумира един идентичен символ от входния поток. Това може да доведе до неуспех на функцията, ако следващият символ в потока не се сравнява равен.
    • Whitespace character: Всички последователни пробели се третират като единични пробели. Освен това „ n“, „ t“ и „“ се считат за еднакви.
    • Conversion specification: Следва следния формат:
      • Първоначален% знак, който определя началото
      • По избор *, наречен знак за потискане на заданието. Ако този знак присъства, fscanf () не присвоява резултата на нито един аргумент за получаване.
      • Незадължително положително цяло число, което указва максималната ширина на полето. Той определя максималния брой символи, които fscanf () е разрешено да използва, когато извършва преобразуването, посочено от текущата спецификация на преобразуване.
      • Незадължителен модификатор на дължина, указващ размера на приемащия аргумент.
      • Спецификатор на формат за преобразуване.
        Форматизатор Описание
        % Съвпада с буквалния%
        ° С Съвпада с един или няколко знака. Ако ширината е дефинирана, съвпада точно с ширината.
        с Съвпада с последователни символи без интервали. Ако ширината е дефинирана, съвпада точно с символите за ширина или докато не бъде намерено първото празно пространство.
        (комплект) Съответства на непразна последователност от символи от дадения набор от символи. Ако присъства в началото на набора, тогава всички символи, които не са в набора, са съвпадащи.
        д Съответства на десетично цяло число.
        i Съвпада с цяло число.
        o Съответства на неподписано осмично цяло число.
        X или x Съответства на неподписано шестнадесетично цяло число.
        u Съответства на неподписано цяло десетично число.
        A или a, E или e, F или f, G или g Съвпада с число с плаваща запетая.
        н Връща броя на прочетените до момента знаци.
        стр Съответства на дефинирана от изпълнение последователност от символи, дефинираща указател.
    Така че общият формат на спецификатора на формата е: %(*)(width)(length)specifier
  • …: Други допълнителни аргументи за получаване на данни. Те се появяват в последователност според спецификатора на формата.

sscanf () Върната стойност

  • При успех sscanf()функцията връща броя на получените аргументи, успешно присвоени.
  • Ако възникне съвпадение на грешка преди да бъде присвоен първият получаващ аргумент, връща нула.
  • Ако възникне неуспех при въвеждане преди да бъде присвоен първият получаващ аргумент, EOF се връща.

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

 #include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )

Когато стартирате програмата, възможният изход ще бъде:

 Име: Денис Фамилия: Ричи

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