2012-07-13 3 views
0

"char **"를 다른 함수에 전달하려고합니다. (사용하고자하는 함수는 매개 변수로 해당 형식을 필요로합니다.) 그러나 내가 가지고있는 것은 double의 배열입니다. double을 C- 문자열로 변환하고이를 수집하거나 연결하는 방법을 찾기 위해 계속 노력하고 있지만 ... 나는 주변에서 돌아 다니고 있으며 컴파일러 오류를 제외하고는 어디에도 가지 않습니다. 코드를 게시 하겠지만,이 코드는 모두 작동하지 않습니다.프리미티브를 char **

누구나 7 개의 이중 값을 가져 와서 char **를 얻는 방법을 알고 있습니까?

+2

다른 기능은 실제로 데이터로 무엇을합니까? 그러면 함수에 전달하기 위해 형식을 지정하는 방법이 결정됩니다. –

+1

7 개의 복식은 어떻게 필요합니까? 3.141을 "3.141"로 변환 하시겠습니까, 아니면 호출하는 함수가'char **'를'double *'으로 변환합니까? 전자는 어떻게 든 이해하지만 (포인터 변환 이상의 것을 요구한다), 후자는 나쁘게 들린다. 명확히하십시오. – eran

+0

몇 가지 코드를 게시하십시오. 당신의 모호한 묘사에서 당신이 필요로하는 것을 추측하는 것은 불가능합니다. –

답변

1

당신은 C를 사용하는 경우는, 하나의 옵션은 "%f" 같은 콘솔에 문자열을 인쇄 (예를 들어, 형식 문자열은 다음에 할 경우 많은 당신처럼, char 버퍼를 할당하고 복식에서 문자열 값을 구축 snprintf()를 호출하는 것입니다 값).

C++을 사용할 수있는 경우 std::ostringstream 클래스의 효과는 비슷합니다 (<sstream> 헤더). << 숫자 값을 넣고 str()을 호출하여 std::string을 만들고 개체에서 c_str()을 호출하여 char*을 얻습니다. 이 포인터는 임시 C 배열에 넣어 char**을 생성 할 수 있습니다.

이처럼 함수 f를 선언하자 : 내가 제대로 상황을 이해한다면

+0

환상적입니다. 이것은 정확히 내가 필요로하는 것이었고 문제를 수정했습니다. 위에서 언급했지만,이 후에는 strcat()을 사용하여 C 문자열의 배열을 만들었습니다.제가 원했던 것처럼 그것은 복식을 내 대본에 실었습니다. 고맙습니다! –

0

int f(const int n, const double* values, char** out_words); 

첫 번째 인수 n은 두 숫자의 번호를, 값은 사용자의 입력을 두 번 숫자 out_words 배열입니다 C 문자열의 숫자를 쓰려는 곳.

out_words는 숫자가 들어갈만큼 충분한 양의 바이트를 가리키는 n 개 이상의 포인터로 올바르게 할당된다고 가정합니다.

그래서 함수 본문은 다음과 같이 할 수있다 :

#include <string.h> 
int i; 
for (i=0; i<n; ++i) { 
    sprintf(out_words[i], "%g", values[i]); 
} 
+0

형식을 "% lg"에서 "% g"(으)로 변경 하시겠습니까? OP는 입력 유형 double을 나타내며 길이 수정자는이 데이터 유형에 적용되지 않습니다. – blockchaindev