printf,sprintf,vsprintfprintf,sprintf比較常用,vsprintf不常用。 1. 三個(gè)函數(shù)的聲明: 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呢? 當(dāng)傳入?yún)?shù)中有...,且要將...中的參數(shù)進(jìn)行格式化輸出時(shí),可以使用vsprintf。例如,在對(duì)話框中顯示格式化字符串時(shí)。 示例代碼: 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); } 調(diào)用代碼: void CTestDlg::OnBnClickedButton() { ShowMessage("%d : %s", 1, "Hello World!"); }
標(biāo)簽: C++
|
|