Загрузка...

%n, why the fuck?

Thread in C/C++ created by fuckedup Sep 22, 2021. 165 views

  1. fuckedup
    fuckedup Topic starter Sep 22, 2021 432 Jan 25, 2019
    Шапка, дайте нормальное объяснения %n
    в инете только про /n ебучее
     
  2. kennyonda
    kennyonda Sep 22, 2021 Banned 245 May 13, 2021
    Спецификатор преобразования %n
    Спецификатор %n довольно значительно отличается от остальных спецификаторов преобразования. Когда функция printf() встречает его, ничто не выводится. Вместо этого выполняется совсем другое действие: в целую переменную, указанную соответствующим аргументом функции, записывается количество выведенных символов. Другими словами, значение, которое соответствует спецификатору преобразования %n, должно быть указателем на переменную. После завершения вызова printf() в этой переменной будет храниться количество символов, выведенных до того момента, когда встретился спецификатор преобразования %n. Чтобы уяснить смысл этого несколько необычного спецификатора преобразования, разберитесь, как работает следующая программа:

    #include <stdio.h>

    int main(void)
    {
    int count;

    printf("this%n is a test\n", &count);
    printf("%d", count);

    return 0;
    }

    Программа отображает строку Это проверка, после которой появляется число 3. Спецификатор преобразования %n в основном используется в программе для выполнения динамического форматирования.
     
    1. fuckedup Topic starter
      kennyonda, та тут нихуя не понятно, мне человеческим языком нужно)
  3. Oniel
    Oniel Sep 22, 2021 Banned 335 Sep 10, 2021
    Читает указатель на адрес переменной в памяти.
     
    1. fuckedup Topic starter
      Oniel,
      C
      scanf_s("%d%n", &x, &n1);
      printf("x = %d%n", x, &n2);

      printf("\n");

      printf("n1 = %d, n2 = %d\n", n1, n2);
      можешь объяснить пж, что по етапно здесь делается?
  4. Oniel
    Oniel Sep 22, 2021 Banned 335 Sep 10, 2021
    1 строка - ввод переменных (n это когда ты выводишь значение которое хранилось в указателе)
    2 строка - вывод
    4 строка - новая строка
    6 строка - вывод
     
Top
Loading...