汗!居然不知道变长参数如何输出百分号!

汗!居然不知道变长参数如何输出百分号!

要这样写:

printf( " 100%% " );

大家都知道吗?直接学c++,没仔细学过C的,估计不知道。

其实我是在用一个变长参数的函数时发现这个问题的,用流的话不用两个%,嘿嘿,写个例程:

#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;
}

你可能感兴趣的:(汗!居然不知道变长参数如何输出百分号!)