转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549

需要包含的头文件

#include <stdio.h>
  • int printf(const char *format, ...);
  • int fprintf(FILE *stream, const char *format, ...);
  • int sprintf(char *str, const char *format, ...);
  • int snprintf(char *str, size_t size, const char *format, ...);

1. printf是标准的输出函数

2. fprintf传送格式化输出到一个文件中

根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件,fprintf只能和printf一样工作。若成功则返回值是输出的字符数,发生错误时返回一个负值。第一个参数是文件指针stream,后面的参数就是printf中的参数,其功能就是把这些输出送到文件指针指定的文件中(使用方式一),如果想要像printf一样将输出送到标准输出,只需要将文件指针FILE指定为stdout即可(使用方式二)。

两种使用方法,一种是将字符串输入到制定文件中,一种是输出到标准输出口。

示例程序如下:

#include <stdio.h>  

FILE *stream;
int
main(void)
{
char s[] = "this is a string.\n";
char c = '\n'; stream = fopen("fprintf.out", "w");
fprintf(stream, "%s", s);   //使用方式一
fprintf(stdout, "abc\n");   //使用方式二
return ;
}

该程序的运行结果是在fprintf.out文件中存入了this is a string.字符串,在标准输出输出了abc字符串。

3. sprintf,字符串格式化命令

主要功能是把格式化的数据写入某个字符串中。第一个参数str是char型指针,指向将要写入的字符串的缓冲区。后面第二个参数是格式化字符串。

当src的长度大于或者等于dest的长度,则会发生内存溢出,所以是不安全的。

示例程序:

#include <stdio.h>  

int
main(void)
{
char s[]; sprintf(s, "%%sfjdksfj" );
printf("%s\n", s);
return ;
}

执行后输出结果是

%sfjdksfj  

3. snprintf函数与sprintf函数类似

snprintf较sprintf更加安全,它也是将可变个参数按照format格式化成字符串,然后将其复制到str中。

  • 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');
  • 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为格式化后的字符串的长度。

示例程序

#include <stdio.h>  

int
main(void)
{
char s[]; snprintf(s, , "%%sfjdksfj" );
printf("%s\n", s);
snprintf(s, sizeof(s), "%%sfjdksfj" );
printf("%s\n", s);
return ;
}

运行结果:

%sf
%sfjdksfj

[misc]printf/fprintf/sprintf/snprintf函数的更多相关文章

  1. printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数

    参考:http://blog.sina.com.cn/s/blog_674b5aae0100prv3.html 总览 (SYNOPSIS) #include <stdio.h> int p ...

  2. printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换

    总览 (SYNOPSIS) #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream ...

  3. [ Skill ] print println printf fprintf sprintf lsprintf

    https://www.cnblogs.com/yeungchie/ 几种 print 函数的差异 print 接收任意的数据类型,并打印到 CIW print( 12345 ) ; 12345 pr ...

  4. 【C语言天天练(十三)】printf、fprintf、sprintf和snprintf函数

    #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream, const char * ...

  5. sprintf,snprintf的用法(可以作为linux中itoa函数的补充)【转】

    转自:http://blog.csdn.net/educast/article/details/25068445 函数功能:把格式化的数据写入某个字符串 头文件:stdio.h 函数原型:int sp ...

  6. printf、sprintf与fprintf 的用法区分

    原文链接 1: fprintf()#include <stdio.h> int fprintf( FILE *stream, const char *format, ... );fprin ...

  7. sprintf和snprintf函数

    printf()/sprintf()/snprintf()区别  先贴上其函数原型 printf( const char *format, ...)    格式化输出字符串,默认输出到终端-----s ...

  8. C语言snprintf函数

    int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...); 函数说明:最多从源串中拷贝n-1个字符到 ...

  9. sprintf系列函数

    1 简介和功能 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中.sprintf 是个变参函数. 把格式化的数据写入某个字符串缓冲区. 2 函数原型 int sprintf( char *b ...

随机推荐

  1. 【云计算】Docker 镜像如何设置语言环境?bash: warning: setlocale: LC_ALL: cannot change locale (en_US)

    解决方案: # set default language environment RUN locale-gen en_US.UTF- \ && dpkg-reconfigure loc ...

  2. Python - 带参数的方法

    import math class Point: def move(self, x, y): self.x = x self.y = y def reset(self): self.move(0, 0 ...

  3. 使用CopyTable工具方法在线备份HBase表

    CopyTable is a simple Apache HBase utility that, unsurprisingly, can be used for copying individual ...

  4. MVC里使用JSON方法集锦

    //一般处理,无参数示例 public JsonResult Test() { Something... return Json{new{Success=true,Msg="Error!&q ...

  5. execve 系列函数

    exec系列函数(execl.execlp.execle.execv.execvp) 1带 p 的exec函数:execlp,execvp,表示第一个参数path不用输入完整路径,只有给出命令名即可, ...

  6. Linux ext2/ext3文件系统详解

    转载: Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表.索引节点是一个结构,它包含了一个文件的长度.创建及修改时间.权限.所属关系.磁盘中的位置等信 ...

  7. iOS pickerView(所有类型一网打尽)

    概述 关于PickView的所有类型都在这里 详细 代码下载:http://www.demodashi.com/demo/11017.html 首先看下项目的整体结构: 一.准备工作 UIPicker ...

  8. soap 1.1 访问服务

    访问http://www.webxml.com.cn/zh_cn/web_services_item.aspx?id=494536374B66307964534D3D 可以获取一些外网提供的服务. 例 ...

  9. 一对一关系数据库表 java类描述

    一对一关系中 从表的主键是 主表的外键 sql语句 create table person( id int primary key, name varchar(100) ); create table ...

  10. 移动UI设计中需要避免的四种常见用户体验误区

    2012年移动应用的下载量超过300 亿,可是智能手机用户平均每周会使用的应用数却大概只有15个.更糟的是,Localytics 的研究表明,大概有22%的应用是见光死,用过一次之后就被束之高阁.既然 ...