서식있는 질문 아래 코드를 가지고있는 질문은 sprintf를 사용하는 곳입니다. 형식화 된 int를 삽입해야합니다. 클라이언트가 데이터를 선택하고 char 배열에 따라 데이터를 추출하기 때문입니다. 따라서 클라이언트는 수신 코드에서 [0]과 [1]의 지연을 선택합니다. 다른 변수가 다른 비트의 코드에서 전송 된 [2]와 [3]에서 가져온 것일 수 있습니다. printf와에서 같은 포맷하는 방법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);'가 충분하지 않습니까 (** 버퍼 오버 플로우 취약점 ** 제외)? –
숫자 0을 왼쪽에서 채워 넣고 싶다면 "% 02d"형식을 시도하십시오 ... 그러나 많은 질문을 이해하지 못합니다 ... –
기본적으로 클라이언트는 서버에서 읽을 때마다 11 0을 수신해야합니다. . 첫 번째 2는 서버의 변수이고 두 번째 변수는 다른 변수를 설정하는 식입니다. startDelay를 char []에 넣는다면 2 슬롯을 채우기 위해 '09'가 필요한 '9'가 될 수 있습니다. – Lacko