-5
我用下面的代碼的問題是我用sprintf的地方,我希望它插入一個格式化的int,因爲客戶端會根據char數組拾取數據並提取數據。因此,客戶端將從接收的代碼中獲取[0]和[1]的延遲。另一個變量可以從另一個代碼發送的[2]和[3]中獲取。什麼是printf的格式化它喜歡的方式被保存在一個char []在C中格式化SprintF
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
如果你想從左邊的嘗試格式「%02d」填充數字0 ......但我不明白這個問題...... – 2013-04-27 19:27:46
基本上我的客戶端每次從服務器讀取時都需要接收11個0 。前兩個將是服務器中的一個變量,第二個設置另一個變量等等。如果我只是把startDelay放到char []中,它可能是'9',我需要它是'09',因爲它需要填充2個插槽,是更好的嗎? – Lacko 2013-04-27 19:32:32