printf,sprintf,vsprintf

    printf,sprintf比较常用,vsprintf不常用。

    1. 三个函数的声明:

int printf (const char * szFormat, ...);

int sprintf (char * szBuffer, const char * szFormat, ...);

int vsprintf(char *string, char *format, va_list param);

    2. 使用的例子:

printf ("The sum of %i and %i is %i", 5, 3, 5+3) ;





char szBuffer [100] ;

sprintf (szBuffer, "The sum of %i and %i is %i", 5, 3, 5+3) ;

puts (szBuffer) ;





int sprintf (char * szBuffer, const char * szFormat, ...)

{

    int iReturn ;

    va_list pArgs ;

    va_start (pArgs, szFormat) ;

    iReturn = vsprintf (szBuffer, szFormat, pArgs) ;

    va_end (pArgs) ;

    return iReturn ;

}

    

    3. vsprintf的使用

    在什么情况下使用vsprintf呢?    

    当传入参数中有...,且要将...中的参数进行格式化输出时,可以使用vsprintf。例如,在对话框中显示格式化字符串时。

    示例代码:    

void CTestDlg::ShowMessage(LPCTSTR lpFormat, ...)

{

    LPTSTR lpStr = NULL;

    char buff[256];



    if (lpFormat)

    {

        va_list argPtr;

        va_start(argPtr, lpFormat);

        vsprintf(buff, lpFormat, argPtr);

        lpStr = buff;

    }



    MessageBox(lpStr);

}

    调用代码:

void CTestDlg::OnBnClickedButton()

{

    ShowMessage("%d : %s", 1, "Hello World!");

}

 

    

你可能感兴趣的:(printf)