Что делает % *s средний спецификатор формата?

Когда мы получили ошибку, ошибка переходит к методу onError , тогда мы обрабатываем его!

private void getAvatar(){
        Picasso.with(this)
                .load(Links.GET_AVATAR + ".jpg")
                .into(imgUserAvatar, new Callback() {
                    @Override
                    public void onSuccess() {

                    }

                    @Override
                    public void onError() {
                        imgUserAvatar.setImageResource(R.drawable.icon_profile_default);
                    }
                });
}
44
задан Jonathan Leffler 2 September 2017 в 23:42
поделиться

3 ответа

Используется для динамического указания ширины поля :

  • Ширина указывается не в строке формата, а как дополнительная аргумент целочисленного значения, предшествующий аргумент, который должен быть отформатирован.

поэтому "indent" указывает, сколько места нужно выделить для следующей за ним строки в списке параметров.

Итак,

printf("%*s", 5, "");

то же самое, что

printf("%5s", "");

Это хороший способ чтобы вставить в файл несколько пробелов, избегая зацикливания.

52
ответ дан 26 November 2019 в 22:13
поделиться

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Ширина указывается не в строке формата, а как дополнительный аргумент целочисленного значения, предшествующий аргумент, который необходимо отформатировать.

например: printf ("% * s", 4, myValue); эквивалентен printf ("% 4s", myValue); .

1
ответ дан 26 November 2019 в 22:13
поделиться

* Заставляет fprintf дополнять вывод до тех пор, пока он не станет шириной n символов, где n - целое число, хранящееся в аргументе функции, непосредственно предшествующем аргументу, представленному измененным типом.

printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.
1
ответ дан 26 November 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: