#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. Linux 学习 step by step (1)

    做为一个技术小菜的android的程序员,做应用层的app觉得没有什么意思,于是像多学点android底层的知识.最近在看<Android 技术内幕(系统卷)> . 我打开书的第一张,便花 ...

  2. CentOS 服务器安全设置

      我们必须明白:最小的权限+最少的服务=最大的安全.所以无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小化,这样才能保证服务器最大的安全. 一.注释掉系统不需要的用户和用户组 ...

  3. PreferenceScreen的应用

    PreferenceScreen preference是偏好.首选的意思,PreferenceScreen个人翻译成 "偏好显示",明确这个意思就好.就是说依据特点灵活的定义显示内 ...

  4. idea中dependencies中总是有红色波浪线(缺少dependency)的解决办法

    使用IDEA进行maven开发时,将新项目import进工作空间时,Maven Projects栏中的dependencies中总是有红色波浪线,如下图: 但是这些jar在我本地的maven仓库中实际 ...

  5. [Node.js] Child Process with fork() to handle heavy calculation process

    When build server, if we have a API endpoint requires some heavy calculation process, it will block ...

  6. Hibernate生成实体类-手工写法(一)

    BaseDao package com.pb.dao; import java.sql.Connection; import java.sql.DriverManager; import java.s ...

  7. SQL之查询函数LOCATE、POSITION、INSTR、FIND_IN_SET、IN、LIKE

  8. C++ union使用注意

    union在我们敲代码的时候的使用概率远远小于struct.所以我们常常不太关心她.就知道他是使用内存复用技术.同一个时刻,他仅仅能存在一个成员的值. C中,我们在union中能够包括struct的, ...

  9. Linux内核3.11的socket busy poll机制避免睡眠切换

    Linux的网络协议栈很独立,上下通过两个接口分别和用户态以及设备相连.也能够看作是北向和南向接口...北向通过socket接口,南向通过qdisc接口(你能够觉得是上层的netdev queue,对 ...

  10. webservice系统学习笔记2-使用jdk的命令生成本地代码

    使用jdk自带的命令wsimport生成远程服务的本地代码 C:\Documents and Settings\Administrator>wsimport -d E:\mhWorkspace\ ...