sprintf的用法

先来看个程序

#include <stdio.h>
void main( void )
{
    char  buffer[200], s[] = "computer", c = 'l';
    int   i = 35, j = 0;
    float fp = 1.7320534f;
   
    j  = sprintf( buffer, "String:%s/n", s);
    cout<<j<<endl;                  // j = 16
    cout<<buffer<<endl;

    j += sprintf( buffer + j, "Character:%c/n", c);
    cout<<j<<endl;                    // j = 16 + 12 = 28
    cout<<buffer<<endl;
   
    j += sprintf( buffer + j, "/tInteger:%d/n", i);
    cout<<j<<endl;                // j = 28 + 12 = 40 此处%d格式化后占2bytes
    cout<<buffer<<endl;
   
    j += sprintf( buffer + j, "/tReal:%f", fp);
    cout<<j<<endl;               // j = 40 + 14 此处%f格式化后占8bytes                     
   
    printf( "Output:/n%s/ncharacter count = %d/n", buffer, j );
}


sprintf, swprintf @import url(MS-ITS:dsmsdn.chm::/html/msdn_ie4.css);

int sprintf( char *buffer, const char *format [, argument] ... );

int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );

sprintf, swprintf @import url(MS-ITS:dsmsdn.chm::/html/msdn_ie4.css);

sprintf returns the number of bytes stored in buffer, not counting the terminating null character. swprintf returns the number of wide characters stored in buffer, not counting the terminating null wide character.

sprintf, swprintf @import url(MS-ITS:dsmsdn.chm::/html/msdn_ie4.css);

Parameters

buffer

Storage location for output

format

Format-control string

argument

Optional arguments


sprintf的返回值是不包括空白终止符的字符个数,但是经过sprintf格式化后,int占2个字节,float占8个字节。。。。

再看下面程序

int main()
{
    char s[]  = "computer";
    cout<<s<<endl;
    cout<<sizeof(s)<<endl;  //9

    char s1[100];
    char* p= "haha";
    int j = sprintf(s1, "/t%s", p);
    cout<<s1<<endl;             //  haha
    cout<<j<<endl;               // 5
   
    return 0;
};


原文地址:https://www.cnblogs.com/kex1n/p/2286570.html