| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Поясните сложение sprintf с int'ом (С, без ++) |
| Автор: wilson 9.10.2017, 14:38 | ||
Что-то не пойму, как можно складывать int с char и получать строку:
Остальной код не стал приводить - задаётся двумерный массив board[ROWS][COLS] и выводится в окне с кнопкой ОК. Не могу понять формирование строки str. Спасибо. |
| Автор: tzirechnoy 9.10.2017, 18:17 |
| Не с char, а с char[1000]. Оператор + на массивах и указателях практически эквивалентен получению указателя на соответствующий элемент. Порядок операндов в операторе + традицыонно не очень важэн. |
| Автор: wilson 10.10.2017, 08:36 |
| С указателями немного понятнее. Но как понять lenstr+sprintf ? Функция вывода на экран возвращает какое-то служебное значение в качестве отчёта об отсутствии ошибок, но каким образом происходит накопление элементов массива через это сложение? |
| Автор: xvr 10.10.2017, 13:39 |
| Во первых - sprintf это не 'функция вывода на экран' Во вторых - sprintf возвращает количество символов, которое она записала в выходную строку Так что lenstr+=sprintf просто смещает индекс в строке (заметьте, что в сам sprintf подается не str а str+lenstr) на количество символов в строке. Таким образом следующий sprintf добавит то, что он выводит, в конец строки |
| Автор: wilson 10.10.2017, 16:15 | ||
Спасибо, теперь проясняется. |