#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, ...);

printf是标准的输出函数。



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

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



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

演示样例程序:

#include <stdio.h>

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

运行后输出结果是

%sfjdksfj



snprintf函数与sprintf函数类似。它也是将可变个參数依照format格式化成字符串。然后将其拷贝到str中。

(1) 假设格式化后的字符串长度 < size。则将此字符串所有拷贝到str中,并给其后加入一个字符串结束符('\0');(2)
假设格式化后的字符串长度 >= size,则仅仅将当中的(size-1)个字符拷贝到str中,并给其后加入一个字符串结束符('\0'),返回值为格式化后的字符串的长度。

演示样例程序:

#include <stdio.h>

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

执行结果:

%sf

%sfjdksfj











【C语言天天练(十三)】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. [misc]printf/fprintf/sprintf/snprintf函数

    转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549 需要包含的头文件 #include <stdio.h> int pr ...

  3. sprintf和snprintf函数

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

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

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

  5. [ Skill ] print println printf fprintf sprintf lsprintf

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

  6. 【C语言天天练(二)】预处理

    引言: 学C语言之初.一提到预处理,脑子里想到的就是#define的宏定义以及#include包括的头文件.后来随着对C的深入学习发现.预处理不止这些.比方条件编译.提前定义的宏等等.以下对此进行总结 ...

  7. 【C语言天天练(二一)】内联函数

            引言:调用函数时,一般会由于建立调用.传递參数.跳转到函数代码并返回等花费掉一些时间,C语言的解决的方法是使用类函数宏.在C99中,还提出了第二种方法:内联函数.         内联 ...

  8. 【C语言天天练(十五)】字符串输入函数fgets、gets和scanf

    引言:假设想把一个字符串读到程序中.必须首先预留存储字符串的空间.然后使用输入函数来获取这个字符串. 读取字符串输入的第一件事是建立一个空间以存放读入的字符串. char *name; scanf(& ...

  9. 【C语言天天练(二四)】内存分配

    引言: 对于C语言程序,了解它执行时在内存中是怎样分配的对于我们理解它的执行机制是很实用的.以下就总结一下C语言程序的一些内存分配知识. 一 一段C程序.编译连接后形成的可运行文件一般有代码段.数据段 ...

随机推荐

  1. HDU 5411 CRB and Puzzle (2015年多校比赛第10场)

    1.题目描写叙述:pid=5411">点击打开链接 2.解题思路:本题实际是是已知一张无向图.问长度小于等于m的路径一共同拥有多少条. 能够通过建立转移矩阵利用矩阵高速幂解决.当中,转 ...

  2. Node.js中的HTTPS示例

      需要openssl的支持, openssl本身不提供windows的安装程序,可以按照如下的步骤进行安装: (参考https://conetrix.com/Blog/how-to-install- ...

  3. [Algorithm] Tower Hopper Problem

    By given an array of number, each number indicate the number of step you can move to next index: For ...

  4. 【android】模拟点击某个指定坐标作用在View上

    /** * 模拟点击某个指定坐标作用在View上 * @param view * @param x * @param y */ public void clickView(View view,floa ...

  5. poj 2391 (Floyd+最大流+二分)

    题意:有n块草地,一些奶牛在草地上吃草,草地间有m条路,一些草地上有避雨点,每个避雨点能容纳的奶牛是有限的,给出通过每条路的时间,问最少需要多少时间能让所有奶牛进入一个避雨点. 两个避雨点间可以相互到 ...

  6. ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

    Linux rpm方式安装完MySQL之后 mysql>SET PASSWORD = PASSWORD('newpasswd');

  7. 有间距的表格布局 table布局

    1.先看有间距的布局效果: 2.少说多做,直接看代码(代码中有注释) <!DOCTYPE html> <html lang="zh"> <head&g ...

  8. sublime 格式化XML文件

    下载插件 下载下来后将其解压到D:\tools\Sublime Text 3109\Data\Packages 打开sublime,preferences->browse packages,会弹 ...

  9. svn 和 git的区别

    1.速度: 克隆一份全新的目录,以同样拥有五个(才五个)分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作.而Git只是获取文件的每个版本的元素,然后只载入主要的分支(master) ...

  10. 解决itextpdf行高问题

    解法:PdfPCell.setFixedHeight(value);