printf,sprintf,vsprintf

printf,sprintf比较常用,vsprintf不常用。

1. 三个函数的声明:

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呢?

当传入参数中有...,且要将...中的参数进行格式化输出时,可以使用vsprintf。例如,在对话框中显示格式化字符串时。

示例代码:

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

调用代码:

void CTestDlg::OnBnClickedButton()
{
    ShowMessage("%d : %s", 1, "Hello World!");
}

printf,sprintf,vsprintf

时间: 2024-10-09 02:16:43

printf,sprintf,vsprintf的相关文章

printf,sprintf,vsprintf 区别【转】

转自:http://blog.csdn.net/anye3000/article/details/6593551 有C语言写作历史的程序员往往特别喜欢printf 函数.即使可以使用更简单的命令(例如puts),但printf 出现在Kernighan和Ritchie的「hello, world」程序中一点也不会令人惊奇.我们知道,增强后的「hello, world」最终还是需要printf 的格式化输出,因此我们最好从头开始就使用它. 但有个坏消息:在Windows程序中不能使用printf.

C语言之linux内核可变参实现printf,sprintf

昨天,我发表了一篇用可变参实现的fprintf函数,其实说实话还不完全是可变参实现的,因为用到了FILE * 这样的指针,需要包含stdio.h这个头文件才能实现这个函数,今天我们就来看看,如何抛弃stdio.h,全0开始实现printf , sprintf ,当然,这段代码是我在linux内核里面获取的,再经过我本人修改,移植,在DevC++这个编译环境中通过测试.我们来看看代码: #include <stdarg.h> #define NULL 0 //如果字符串中为数字,则返回数字 st

PHP基础温习之echo print printf sprintf print_r var_dump的用法与区别

原文:PHP基础温习之echo print printf sprintf print_r var_dump的用法与区别 一.echoecho() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void的,并不返回值,所以不能使用它来赋值.例子: 复制代码代码如下: <?php $a = echo("55nav"); // 错误!不能用来赋值 echo "55n

PHP输出函数print, printf, sprintf的区别

PHP中常用的字符串输出方式是:使用echo和print两种方法来显示字符串.如果涉及格式化输出操作,还可以试用printf和sprintf函数. 一.先说echo和print两种方法 print的语法格式为:int print ( string $arg   ) echo的语法格式为:void echo ( string $arg1   [, string $...  ] ) echo都是一种类似于函数的输出方式而非函数,没有返回值,且支持多参数: print是输出函数,其返回值为int类型的

PHP中函数sprintf .vsprintf (占位符)

sprintf()格式化字符串写入一个变量中. vsprintf()格式化字符串些写入变量中. <?php $num1 = 123; $num2 = 456; $txt = vsprintf("%f%f",array($num1,$num2)); echo $txt; ?> 输出: 123.000000456.000000 语法 sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需.规定插到 format

PHP echo, print, printf, sprintf函数的区别和使用

1. echo函数: 输出函数,是命令,不能返回值.echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"<b>bold</b>"; 2. print函数: 是函数,可以返回一个值,只能有一个参数. int print ( string arg ) Outputs arg . Returns 1 ,  always. 3. printf函数: int printf ( string format [,

echo print printf sprintf print_r var_dump的用法与区别

一.echoecho() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void的,并不返回值,所以不能使用它来赋值.例子: 复制代码代码如下: <?php $a = echo("55nav"); // 错误!不能用来赋值 echo "55nav"; // 55nav echo ("55nav"); // 55nav echo (

printf sprintf fprintf

printf.sprintf与fprintf 的用法区分 1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制. 2.fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...); 3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件. int   fprintf(   FILE   *stream,   c

C语言中的printf(),sprintf(),scanf(),sscanf()

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.这也导致sprintf 比printf 有用得多. printf 语法: #include <stdio.h> int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中.返回