Вопрос, который у меня есть с приведенным ниже кодом, - это то, где я использовал sprintf, я хочу, чтобы он вставлял форматированный int, потому что клиент затем берет данные и вытаскивает данные в соответствии с массивом char. Таким образом, клиент будет получать из полученного кода задержку с [0] и [1]. Если другая переменная может быть взята из [2] и [3], которая отправляется из другого бита кода. Какой способ отформатировать его, как в Printf быть сохранены в полукокса []Форматирование SprintF в C
int sock = *(int*)data->sock;
int i,startDelay =0;
char buffer[SEND_MESSAGE_LENGTH];
puts("Run Machine Called");
for(startDelay=11;startDelay>=0;startDelay--)
{
printf("Start Delay:%i\n",startDelay);
sprintf(buffer,"%2i",startDelay);
printf("Send Data - %2i - Start Delay\n",*buffer-'0');
//write_sock(sock,buffer);
sleep(1);
}
Что? Почему 'sprintf (buf,«% i », 42);' недостаточно хорош (** кроме уязвимости переполнения буфера **)? – 2013-04-27 19:22:24
Если вы хотите, чтобы число 0 дополнялось слева, используйте формат «% 02d» ... но я не очень понимаю вопрос ... –
В основном моему клиенту нужно получать 11 0 каждый раз, когда он читает с сервера , первая 2 будет одной переменной с сервера, вторая - другой переменной и так далее. если я просто положил startDelay в char [], это может быть «9», где мне нужно, чтобы оно было «09», так как ему нужно заполнить 2 слота, это лучше? – Lacko