-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