首页 > 其他 > 详细

标准IO之格式化输入和输出

时间:2015-01-10 12:42:58      阅读:295      评论:0      收藏:0      [点我收藏+]

1. 格式化输入

返回值:三个函数的返回值一致,若成功,指定输入的项数,若输入出错或在任意变换前已到达文件结尾则返回EOF

(1). scanf

原型:int scanf(const char *restrict format, ...);

最基础,从标准输入输入

(2). fscanf

原型:int fscanf(FILE *restrict fp, const char *restrict format, ...);

(1)相比,可以指定流fp,不再局限标准输入

(3). sscanf

原型:int sscanf(const char *restrict buf, const char *restrict fromat, ...);

(2)相比,不是从流输入,从数组buf中输入

2. 格式化输出

(1). printf 

最基础,将格式化数据写到标准输出,不涉及缓冲区溢出的问题

返回值:若成功返回输出字符数,若出错则返回负值

(2). fprintf

原型:int fprintf(FILE *restrict fp, const char *restrict format, ...);

返回值:若成功返回输出字符数,若出错则返回负值

(1)相比,可以指定要写入的流,不再局限标准输出

(3). sprintf

原型:int sprintf(char *restrict buf, const *restrict format, ...);

返回值:若成功返回存入数组中的字符数,若编码出错则返回负值

(2)相比,写入的不再是流,而是数组buf,sprintf会在该数组的尾端自动添加一个null字节,但该字节不包括在返回值中,由于加入null字节的缘故,可能会造成缓冲区溢出,调用者要注意。

(4). snprintf

原型:int sprintf(char *restrict buf, size_t n, const *restrict format, ...);

返回值:若成功返回存入数组中的字符数,若编码出错则返回负值

(3)相比,加入了缓冲区长度n,解决了缓冲区溢出的问题,返回值也不包括null字节

标准IO之格式化输入和输出

原文:http://blog.csdn.net/chienchia/article/details/42580701

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!