要這樣寫(xiě):
printf(
"
100%%
"
);
大家都知道嗎?直接學(xué)c++,沒(méi)仔細(xì)學(xué)過(guò)C的,估計(jì)不知道。
其實(shí)我是在用一個(gè)變長(zhǎng)參數(shù)的函數(shù)時(shí)發(fā)現(xiàn)這個(gè)問(wèn)題的,用流的話不用兩個(gè)%,嘿嘿,寫(xiě)個(gè)例程:
#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
七星重劍 閱讀(1837)
評(píng)論(5) 編輯 收藏 引用 所屬分類(lèi):
PL--c/c++