2011-12-17 7 views
0

이 함수는 하나 이상의 char 매개 변수를 사용하여 각 매개 변수를 출력하고 각 문자의 끝에 '\ n'을 추가합니까?여러 개의 매개 변수를 C로 인쇄하십시오

void printAndSave(char* msg,...) 
{ 
    //printing single one. 
    //printf("Log:%s\n",msg); 
    //saveToLog(msg); 

    //how to print all of them? 

} 

답변

2

char* 인수의 수를 지정하려면 printAndSave()의 서명을 변경해야한다고 생각합니다. 예 :

void printAndSave(const unsigned int arg_count, ...) 
{ 
    unsigned int i; 
    char* val; 
    va_list vl; 

    va_start(vl,arg_count); 
    for (i=0;i<arg_count;i++) 
    { 
     val=va_arg(vl,char*); 
     printf ("%s\n",val); 
    } 
    va_end(vl); 
} 
+0

첫 번째 매개 변수는 항상 개수 일 필요는 없습니다. OP의 첫 번째 인수 ('char * msg'). 매개 변수의 수를 추론하는 데 사용할 수있는 형식 문자열과 같은 것을 보유합니다. – codeling

+0

@nyarlathotep, ok. 그러나 처리 할 인수의 수를 함수에 알리는 것이 필요합니다. – hmjd

1

예 : page 끝 부분을 찾으십시오. 당신은 당신의 문제에 쉽게 적응해야한다;) 당신은 그것들의 유형을 알아야한다.

관련 문제