부호없는 int 배열 난 int 배열 포인터와 같은 배열의 길이가 : 또한 문자열 및 버퍼가의 sprintf 및 C
unsigned int length = 3;
int *array; // Assume the array has 3 initialized elements
을 (추정 충분히 크다) 등의 sprintf에 넣어 :
char buffer[128];
const char *pattern = "(%d, %d, %d)\n";
이 pattern
은 거기에 "% d 개"의 다른 문자가있을 것이라는 점을 가정하지만, 어떤 형태가 될 수있다 (즉, "테스트 % 1! : % d"또는 "% d 개 % d ")이고, 길이가 array
인 경우 항상"% d "의 수와 같아야합니다.
배열의 길이는 무엇이든 될 수 있으므로 array
의 요소를 명시 적으로 열거하지 않고 sprintf (buffer, pattern, &array[0], &array[1], &array[2])
을 수행 할 수있는 방법이 있습니까? sprintf (buffer, pattern, array)
의 줄을 따라 뭔가가 있습니다. 필요한만큼 도우미 함수를 작성할 수 있습니다. 나는 va_list를 위장 할 생각을하고 있었지만, 이것은 프로그램을 특정 컴파일러로 제한하기 때문에 좋지 않은 것으로 보인다. 형식 문자열이 될 필요가 있기 때문에 당신이 뭔가를 할 수
이 필요한's입니다 [0] = 0;'? – imreal