
C/C++
Только очень разжеванно, пожалуйста. ОЧЕНЬ
Что такое %d\n и зачем он нужен?

%d-это спецификатор формата, он указывает на целочисленный тип данных. eg - int n; scanf(“%d”, &n); //Это принимает целое число в качестве входных данных.
%d это место, где будет выведено целое число (decimal), а \n - переход на новую строку (new line).
Александр Сичевский
\n не надо выносить за кавычки?
" Last matryoshka!!! %d\n" - шаблон выводимой строки.
%d - указывает, что в этом месте в шаблон будет подставлена десятичная запись значения типа int, передаваемого в printf вторым параметром.
\n - стандартная в C-style языках запись служебного символа "перевод строки".
%d - указывает, что в этом месте в шаблон будет подставлена десятичная запись значения типа int, передаваемого в printf вторым параметром.
\n - стандартная в C-style языках запись служебного символа "перевод строки".
В функции printf форматная строка идет первым аргументом, и весь фиксированный текст должен быть именно там. Второй, третий и последующие аргументы будут подставлены в соответствующие места форматной строки (плейсхолдеры со знаком процента — вроде %d, %f, %s, %c и прочих).
Если сделать перенос внутри форматной строки:
printf("Привет, %d!\n", 34);
то аргумент 34 подставится на место %d (это место для подстановки целого числа, d от слова decimal — десятичное число).
Результат:
Привет, 34!
| ← курсор перешел на новую строчку благодаря символу \n
А если сделать перенос отдельно от форматной строки:
printf("Привет, %d!", "\n", 34);
то на место %d функция подставит значение строки "\n", в виде целого числа (это будет адрес указателя на строку в оперативной памяти, то есть число от балды).
Результат (у меня):
Привет, -383909883!| ← курсор остался в конце строчки, так как в форматной строке нет переноса \n (он во втором аргументе, который не является форматной строкой).
Если сделать перенос внутри форматной строки:
printf("Привет, %d!\n", 34);
то аргумент 34 подставится на место %d (это место для подстановки целого числа, d от слова decimal — десятичное число).
Результат:
Привет, 34!
| ← курсор перешел на новую строчку благодаря символу \n
А если сделать перенос отдельно от форматной строки:
printf("Привет, %d!", "\n", 34);
то на место %d функция подставит значение строки "\n", в виде целого числа (это будет адрес указателя на строку в оперативной памяти, то есть число от балды).
Результат (у меня):
Привет, -383909883!| ← курсор остался в конце строчки, так как в форматной строке нет переноса \n (он во втором аргументе, который не является форматной строкой).
%d выписывает аргумент (в данном случае n, которое идёт после запятой) в формате int (как выше написали, целочисленный формат; n - целое число).
\n - попросту выписывает новую линию
\n - попросту выписывает новую линию
Александр Сичевский
\n не надо выносить за кавычки?
%d - зарезервированный кусок текста, который обрабатывается иначе этой функцией.
Функция считывает символы в кавычках, и выводит их как обычный текст. Но если встречается служебная комбинация %d - обработка и вывод текста прервывается, функция считывает следующий аругумент как d - decimal (тоесть int 4 байта), выводит его как часть текста, и продолжает обработку текста дальше.
Чтобы вывести %d как текст нужно воспользоваться дополнительным слешем \%d (или как-то так, (I hate "C" !)), чтобы функция поняла, что это не служебная комбинация а обычный текст.
Это очень популярная технология подмены. И если она дает сбой, то в играх вместо каких-то правильных слов выводятся эти самые служебные комбинации.
Вы наносите %damage орку! Орк падает замертво!
Функция считывает символы в кавычках, и выводит их как обычный текст. Но если встречается служебная комбинация %d - обработка и вывод текста прервывается, функция считывает следующий аругумент как d - decimal (тоесть int 4 байта), выводит его как часть текста, и продолжает обработку текста дальше.
Чтобы вывести %d как текст нужно воспользоваться дополнительным слешем \%d (или как-то так, (I hate "C" !)), чтобы функция поняла, что это не служебная комбинация а обычный текст.
Это очень популярная технология подмены. И если она дает сбой, то в играх вместо каких-то правильных слов выводятся эти самые служебные комбинации.
Вы наносите %damage орку! Орк падает замертво!
Похожие вопросы
- Как передать матрицу размером n в процедуру? C++
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Язык си Найти все делители натурального числа N и вывести их в порядке возрастания и убывания.
- Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов.
- Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n.
- Си. Цикл for. Что не так? Составить программу вывода на экран всех простых чисел не превосходящих введеннного числа N
- Хелпаните плиз, надо код перестроить на N вещестные числа и для вычесления гометрической прогрессии.
- С++ | Надо отсортировать двухмерный массив N*M в порядке возрастания и спадания ПО КАЖДОМУ СТОЛБЦУ ОТДЕЛЬНО
- Даны два числа: n и m. Создайте двумерный массив размером n×m и заполните его в соответствии с примером.
- На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.