【C语言天天练(十三)】printf、fprintf、sprintf和snprintf函数
#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函数的更多相关文章
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数
参考:http://blog.sina.com.cn/s/blog_674b5aae0100prv3.html 总览 (SYNOPSIS) #include <stdio.h> int p ...
- [misc]printf/fprintf/sprintf/snprintf函数
转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549 需要包含的头文件 #include <stdio.h> int pr ...
- sprintf和snprintf函数
printf()/sprintf()/snprintf()区别 先贴上其函数原型 printf( const char *format, ...) 格式化输出字符串,默认输出到终端-----s ...
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换
总览 (SYNOPSIS) #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream ...
- [ Skill ] print println printf fprintf sprintf lsprintf
https://www.cnblogs.com/yeungchie/ 几种 print 函数的差异 print 接收任意的数据类型,并打印到 CIW print( 12345 ) ; 12345 pr ...
- 【C语言天天练(二)】预处理
引言: 学C语言之初.一提到预处理,脑子里想到的就是#define的宏定义以及#include包括的头文件.后来随着对C的深入学习发现.预处理不止这些.比方条件编译.提前定义的宏等等.以下对此进行总结 ...
- 【C语言天天练(二一)】内联函数
引言:调用函数时,一般会由于建立调用.传递參数.跳转到函数代码并返回等花费掉一些时间,C语言的解决的方法是使用类函数宏.在C99中,还提出了第二种方法:内联函数. 内联 ...
- 【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
引言:假设想把一个字符串读到程序中.必须首先预留存储字符串的空间.然后使用输入函数来获取这个字符串. 读取字符串输入的第一件事是建立一个空间以存放读入的字符串. char *name; scanf(& ...
- 【C语言天天练(二四)】内存分配
引言: 对于C语言程序,了解它执行时在内存中是怎样分配的对于我们理解它的执行机制是很实用的.以下就总结一下C语言程序的一些内存分配知识. 一 一段C程序.编译连接后形成的可运行文件一般有代码段.数据段 ...
随机推荐
- Golang 中错误与异常需要重新认识
如何进行错误处理,这是一个Go程序员之间,特别是一些新的Go程序员,会经常讨论的问题.讨论到最后往往由于以下代码的多次出现而变成了抱怨. if err != nil { return err } 我们 ...
- MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
Capped集合 Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...
- 如何在Linux中发现IP地址冲突
导读 你们都知道什么是IP地址,是吧?它们被分配给网络上的设备来代表它们.它们通过DHCP服务器分配并且会经常改变.现在有两种IP地址.动态的一种会经常改变(几天一次),而静态的就如它的名字那样是静态 ...
- Bootstrap全局CSS样式之表格
.table--基础表格样式. .table-striped--给<tbody>之内的每一行添加斑马条纹样式: .table-bordered--为表格添加边框: .table-hover ...
- android 动画具体解释(二)
以下就開始学习属性动画的基本使用方法,我们来看属性动画的继承关系,例如以下如所看到的: 显然关注的焦点应该是ValueAnimator,ObjectAnimator这两个类啦,ObjectAnimat ...
- 关于gcc、glibc和binutils模块之间的关系,以及在现有系统上如何升级的总结
http://blog.csai.cn/user1/265/archives/2005/2465.html 一.关于gcc.glibc和binutils模块之间的关系 1.gcc(gnu collec ...
- Linux rpm 命令参数使用详解[介绍和应用]
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种 ...
- YUM常用命令详解
yum是一个用于管理rpm包的后台程序,用python写成,可以非常方便的解决rpm的依赖关系.在建立好yum服务器后,yum客户端可以通过 http.ftp方式获得软件包,并使用方便的命令直接管理. ...
- Js判断出生年月填写的 是否正确
var r = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29 ...
- Java中的软(弱)引用
一.Java中的强.软.弱.虚引用 在JDK中我们能够看到有一个java.lang.ref的包.这个包中就是Java中实现强.软.弱.虚引用的包,例如以下: PhantomReference 虚引用: ...