C库中的输入函数、输出函数

关于这些C库输入函数、输出函数的用法,可以在命令行输入“man 3 xxx”来查询。

一、printf()函数、scanf()函数

1、printf()函数

函数模型

int printf(const char *format, ...);

函数作用

把存储在计算机中的二进制格式的数值,按照转换说明,转换成一系列字符(一个字符串)以便于显示,如0100 1100(76),%d说明将之转换成字符7和6,并显示为76。

函数返回所打印的字符的数目。它针对所有的打印字符,包括空格和不可见的换行字符。

补充说明

常见的转换说明有:%d,%s(字符串),%c(字符);

2、scanf()函数

函数模型

int scanf(const char *format, ...);

函数作用

读取输入的字符,并将输入的字符按照格式说明进行转换。

比如我们想输入整数2004时,输入的是字符2、0、0、4,需要使用scanf(“%d”)将输入解释(或者说转换)为整数;其他情况类似。

函数返回成功读取的项目的个数。

参数说明

该函数使用指向变量的指针作为参数。

补充说明

(1)scanf()函数使用空白字符来表示输入不同变量

它依次把转换说明与字段匹配,并跳过字段之间的空白字符(即不读入空格)。不过当使用%c时,它也会读入空白字符。

(5)%s

跳过空白字符(空格)直到遇到第一个非空白字符,然后保存(再次遇到空白字符时之间的)所有非空白字符。存储的时候,会在结尾附加一个空字符。

(6)%c

对所有的输入字符都是平等的,如果下一个输入字符是一个空白字符,不会跳过空白字符,而是把它赋给指定的变量。注意,它表示只读一个字符。

二、getchar()函数、putchar()函数

这两个函数是面向字符的输入输出函数,用于标准输入与标准输出。

1、getchar()函数

函数原型

int getchar(void);

函数作用

该函数用于读取从标准输入(一般是键盘)键入的一个字符。

该函数返回用户输入的字符的 ASCII 码。

补充说明

(1)该函数只能得到一个字符,如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取,即后续的getchar调用不会等待用户按键,而直接读取缓冲区中之前剩余的字符,直到缓冲区中的字符读完为后,才等待用户按键。

(2)文件结尾检查

while( (ch=getchar()) != EOF )

(3)getchar()函数,其等价于getc(stdin)函数。

2、putchar()函数

函数原型

int putchar(int c);

函数作用

该函数用于向标准输出(一般是显示屏)输出的一个字符。

补充说明

putchar(c)函数,其等价于 putc(c, stdout)函数

三、getc()函数、putc()函数

1、getc()函数

函数原型

int getc(FILE *stream);

函数作用

该函数从文件指针stream所指的文件中获取一个字符。

补充说明

当文件指针stream指向标准输入文件(一般指键盘)时,此函数等价于getchar()函数。

2、putc()函数

函数原型

int putc(int c, FILE *stream);

函数作用

该函数将字符 c 写入文件指针stream所指向的文件中。

补充说明

当文件指针stream指向标准输出文件(一般指显示屏)时,此函数等价于putchar(c)函数。

四、gets()函数、puts()函数

1、gets()函数

函数原型

char *gets(char *s);

函数作用

该函数用于获取一个字符串。

它读取换行符('\n')之前的所有字符,并在末尾添加一个空字符(‘\0’),以形成一个完整的字符串。返回值是指向这个字符串的指针。

补充说明

(1)按回车键会产生换行符。

(2)该函数也读取换行符,但是会丢弃。因此下一次读取时,不会存在之前的换行符。

(3)如果出错或者遇到文件结尾,返回空指针NULL,所以错误检测如下:

while( (gets(name))!= NULL )

2、puts()函数

函数原型

int puts(const char *s);

函数作用

该函数将字符串 s 写入标准输出文件(一般是屏幕)中,即在屏幕上显示字符串 s。

补充说明

(1)显示字符串时自动在其后添加一个换行符;

(2)遇到空字符(字符串的末尾的‘\0’)就会停止显示。

五、fgets()函数、fputs()函数

1、fgets()函数

函数原型

char *fgets(char *s, int size, FILE *stream);

函数作用

从文件指针stream所指向的文件中读取(size-1)个字符到s所指向的buff中。

补充说明

(1)第二个参数说明最大可读入的字符数,如果为n,则最多读取n-1个字符,或者读完换行符为止(即会把它存在字符串里,而不是丢弃它)。

(2)如果是从键盘上读取,则标示为stdin;

2、fputs()函数

函数原型

int fputs(const char *s, FILE *stream);

函数作用

将字符串s写入到文件指针stream所指向的文件中。

补充说明

(1)如果是显示在屏幕,则标示为stdout;

(2)不为输出添加自动换行符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【音乐】想不起来歌名的瞎唱

1、风吹稻(盗)花香~好地方~ 2、转载于:https://www.cnblogs.com/wxl845235800/p/11152088.html

PWM调光方法在LED亮度调节中的应用

LED 是一种固态电光源, 是一种半导体照明器件,其电学特性具有很强的离散性。它具有体积小、机械强度大、功耗低、寿命长, 便于调节控制及无污染等特征,有极大发展前景的新型光源产品。LED 调光方法的实现分为两种: 模拟…

redhat rpmforge epel 安装源配置

参考阅读 epel 直接安装 RPMforge for CentOS 6 The default RPMforge repository does not replace any CentOS base packages. In the past it used to, but those packages are now in a separate repository (rpmforge-extras) which is disabled by default. You can fi…

知方可补不足~SQL2005使用ROW_NUMBER() OVER()进行数据分页

回到目录 数据分页是这个经常说的东西,无论在WEBForm还是WinForm中它都会被单独拿出来,或者是公用组件,或者是公用类库,反正对于数据分页这个东西,总是我们关注的一个话题,但事实上,数据分页归…

main函数的参数

main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)。C语言还规定argc(第一个形参)必须…

leetcood学习笔记-2-两数相加

题目描述: 方法一: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val x # self.next Noneclass Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:cur…

AIX samba服务器配置

最简单的安装文件是。bff文件了,菜鸟的最爱。下载地址我找了很久,现在奉献出来:http://www.bullfreeware.com/一、下载samba-3.0.4.0.bff二、将文件放在AIX系统的临时安装目录下,如:/usr/samba三、 smit installp&…

Forward框架的逆袭:解析Forward+渲染

转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/2012/04/21/forward%e6%a1%86%e6%9e%b6%e7%9a%84%e9%80%86%e8%a2%ad%ef%bc%9a%e8%a7%a3%e6%9e%90forward%e6%b8%b2%e6%9f%93/ AMD在7900系列显卡发布的时候同时推出了Leo demo, 并说明它…

atoi()函数:将字符串转换成整型数

C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。这里讲述atoi()函数的内容,另外两个类似。 函数原型 int atoi(const char* nptr); 函数功能 将字符串转换成整型数。 补充说明 atoi()函数会检查nptr所指向…

Java NIO学习系列三:Selector

前面的两篇文章中总结了Java NIO中的两大基础组件Buffer和Channel的相关知识点,在NIO中都是通过Channel和Buffer的协作来读写数据的,在这个基础上通过selector来协调多个channel以同时读写数据,本文我们就来学习一下selector。 Java NIO中引入…

android中的BitMap(二)从网络和资源文件中获得一个BitMap

//取得网络上图片资源的路径 String urlstring"http://img.wallba.com/Public/Upload/Image/qichebizi/ asidunmading7/134/20113151413962.jpg"; try { //建立网络连接 URL imageURlnew URL(urlstring); URLConnection conimageURl.openConnection(); con.co…

Java JTable3

预览: 代码 : /*** */ package com.han;import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; imp…

ov7725摄像头调试经验-寄存器配置

之前调过一款摄像头,是MT9V034, 最近在调的是OV7725摄像头,感觉OV7725摄像头比MT9V034要难,特别是寄存器配置,要想玩转一款摄像头,必须要熟悉它的寄存器配置,而且要亲自去调试,然后才…

关于ASCII字符的那些事儿

1、单字符一般用单引号加一个字符表示,比如字符1表示为‘1’,而数字1直接表示为1; char ch 1 ;int num 1;2、计算机用数字来存储字符,比如字符1,在计算机里面为49(十进制);而数字…

SQL Server Transactional Replication 中的 CommitBatchSize 和 CommitBatchThreshold 属性

最近遇到一个在SQL Server transactional replication 里关于CommitBatchSize 和CommitBatchThreshold设置的问题,BOL里面的解释很含糊:CommitBatchSize “Is the number of transactions to be issued to the Subscriber before a COMMIT statement is …

JqueryMobile学习之二---对话框

对话框 通过在链接中添加data-rel”dialog”的属性&#xff0c;可以使链接页面的显示方式变为对话框。给显示的对话框加入切换的效果也是一个不错的选择 例如我们将about的链接变成一个对话框并加入相应的切换效果。代码如下 <p><a href"#about" data-rel&q…

“leave the world behind”十一快乐出行

这个十一你打算怎么过&#xff1f;每天睡到自然醒&#xff0c;然后闷在家里埋头上网&#xff1f;选择晴朗好天气出去逛街&#xff0c;四处淘宝贝&#xff0c;淘美食&#xff1f;还是选择一个好的路线出去玩一周&#xff1f;其实行无论宅着还是选择出行&#xff0c;一定要让自己…

my_atio()代码出错原因,完全代码

1、//不明白这么简单的代码为什么会出错#includeint my_atoi(char *str);int main(void){char a[]" 12345";int b0;b my_atoi(a);printf("%d", b);getchar();return 0;}int my_atoi(char *str){char* p str;//char *p; p str;int inter_symbol 1;int …

分享一个文件上传工具类

文件上传状态枚举类&#xff1a; View Code 1 package com.hoo.enums;2 3 4 5 /**6 7 * <b>function:</b> 文件上传状态8 9 * package com.hoo.enums 10 11 * fileName UploadState.java 12 13 * createDate 2010-10-11 下午1…

静态库和动态库的区别

库是写好的&#xff0c;现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说&#xff0c;库是一种可执行代码的二进制形式&#xff0c;可…