要這樣寫:
printf(
"
100%%
"
);
大家都知道嗎?直接學(xué)c++,沒仔細學(xué)過C的,估計不知道。
其實我是在用一個變長參數(shù)的函數(shù)時發(fā)現(xiàn)這個問題的,用流的話不用兩個%,嘿嘿,寫個例程:
#include?<stdio.h>
#include?<varargs.h>
#include?<string>
#include?<iostream>
#include?<sstream>
#include?<stdarg.h>
std::string?GetString(const?char*?pszFmt,?
);
int?_tmain(int?argc,?_TCHAR*?argv[])
{
????std::string?str0?=?GetString("我叫豬頭,我%d歲了,?我脂肪含量98%%!",?3);
????std::ostringstream?oss;
????oss?<<?"我叫豬頭,我"?<<?3?<<?"歲了,?我脂肪含量98%!";
????std::cout?<<?str0?<<?'\n'?<<?oss.str()?<<?std::endl;
????return?0;
}
std::string?GetString(const?char*?pszFmt,?
)
{
????std::string?strReturn;
????va_list?args;
????va_start(args,?pszFmt);
????int?len?=?_vscprintf(pszFmt,?args);
????strReturn.resize(len);
????vsprintf(&strReturn[0],?pszFmt,?args);
????va_end(args);
????return?strReturn;
}
posted on 2007-03-19 21:11
七星重劍 閱讀(1834)
評論(5) 編輯 收藏 引用 所屬分類:
PL--c/c++