linux中getchar函数用法,linux getchar函数使用
1 函数介绍
1) 函数原型
int getchar(void);
2) 函数功能
从stdin中读取一个字符。
3) 返回值
返回读取字符的ASCII值或者EOF字符或者出错值。
4) 头文件
#include
2 函数使用
2.1 getchar函数的特点
Linux下编写的一个例子:
#include
int main(void)
{
char ch;
int num;
num = 0;
printf("input your strings:\n");
while( (ch = getchar()) != '\n'){
printf("%c ", ch);
num++;
}
printf("\nThe string length is %d\n", num);
return 0;
}
编译程序:gcc –Wall getchar.c –o getchar
运行程序:./getchar [回车]
//提示:当程序运行到while循环中的getchar时,界面等待用户输入字符,直到回车出现
input your strings:
输入字符串:hello getchar
在输入这段字符串的过程中getchar函数没有发生从stdin读取字符的操作(因为没有任何的字符输出),当在输入字符串后按下回车后界面输出情况如下:
input your strings:
hello getchar
h e l l o g e t c h a r
The string length is 13
misskissc@monday:~$
由程序执行过程及结果可推理getchar在等待用户输入时有两个特征:
1) getchar没有立即读从键盘敲进来的字符,而是等用户按下回车之后再开始读字符。
2) getchar每次只读取一个字符,如果程序中不采用循环而只设置一个getchar()语句,则getchar只读取输入字符串的首个字符,其余字符依然留在缓存区中(若将程序的while循环去掉只输出第一个字符)。
2.2 getchar读取回车字符么?
现将以上程序的while( (ch = getchar()) != '\n')改为while( (ch = getchar()) != 'n')其余部分保持不变。重新编译并运行程序,输入字符串:hello[回车]
得第一次运行结果
当程序首次执行到while中的getchar时,getchar函数等待用户的输入,getchar函数一直等待用户输入,当用户按下回车表示用户输入完毕,getchar开始逐个读取输入的字符串,将用户输入的所有字符读取完毕后(因为while的条件为真),再次等待用户的输入:
此次输入字符’n’,注意输入字符’n’时的位置,为什么不是在o后面呢,而是换了一行而且相隔了一个空格呢?其实是因为上一次getchar读了一个回车,并被输出到了界面之上使字符界面得以换了行。输入字符’n’没有按回车之前getchar函数是不会发生读操作的,当在输入字符’n’后按下回车后程序就会结束(或者在输入字符’n’后再输入其它的字符后再按下会车,程序依然将会结束,只是字符’n’后面的字符不会被getchar函数读取,因为while循环的条件已经为假)并得到以下输出界面
String输入字符串的长度为6在一次表明getchar读取了用户输入的回车。字符’n’虽然被读取,但是不会被计数,因为此时while的条件为假了呗。
3 额外总结
函数本身的特性与语句条件限制两者各自带来的作用需要分清楚。
Note Over。
linux中getchar函数用法,linux getchar函数使用相关推荐
- linux中strlen的用法,实现strlen()函数,strcmp()函数 const知识点
实现strlen()函数,strcmp()函数 const知识点 发布时间:2020-08-03 05:49:13 来源:51CTO 阅读:576 作者:汇天下豪杰 1.strlen()函数的实现:# ...
- linux中execve的用法,Linux 的 execve 函数
execve 函数是所有执行程序函数最底层的实现了,其参数为 int execve (const char *__path, char *const __argv[], char *const __e ...
- linux中man手册用法,Linux中man手册的使用
在linux中,不管是库函数还是系统调用,都用到man手册来查看函数的三要素(功能.参数.返回值),这里就详细的介绍一下man手册的使用.这里需要注意的是:对于初学者来说,不能将手册页当教程,因为它只 ...
- linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档
第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...
- linux中comm的用法,linux中comm命令用法
linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能: 选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...
- Linux中close的用法,linux下 open() write() read() close函数
1. open()函数 功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数. 所需头文件:#include ,#include ,#include 函数原型:in ...
- Linux中cron的用法,Linux中cron命令的用法详解
linux中有一个命令可以定期来执行系统任务.这就是crond服务.下面介绍下crontab命令的用法. linux任务调度的工作主要分为以下两类: 编辑/etc/crontab 文件配置cron c ...
- linux中expr的用法,linux expr命令参数及用法详解(示例代码)
expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ...
- linux中uniq的用法,linux uniq命令用法
uniq命令: 对指定的ASCII文件或标准输入进行唯一性检查,以判断文本文件中重复出现的行,常用于分析日志:查看tcp各个状态连接数,ip或域名连接数排名等等场景,一般与 sort 命令结合使用. ...
- 面试linux中sed的用法,linux中sed命令的使用与注意小结
前言 sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用s ...
最新文章
- 如何让AI机器人的对话更加自然?
- IEEE:2021年的机遇、挑战以及关键的科技趋势
- 前端菜鸡之路——网页上的图标
- asp.net 网站开发流程总结
- 7-26 单词长度 (15 分)
- Java学习,继承关系的学习和理解
- 初次见面C#排坑记录
- WordPress: 使用 wp_insert_attachment 上传附件
- linux中常见的文件操作命令
- DevOps使用教程 华为云(15)git如何将本地项目初始化为远程仓库
- 最新隐马尔可夫模型HMM详解
- 支付宝、京东支付场景之策略模式实战
- SAP FI 会计凭证批量创建实现 客户/供应商/资产
- python数据分析师面试_数据分析师面试_业务分析师_数据分析场景如何结合企业业务分析...
- webmail lite php,WebMail Lite - 从Gmail,Yahoo,Outlook和其他管理和下载邮件
- 区块链开发者招聘:IOST开发者计划
- 已安装ME,PR队列导出仍无法打开ME
- html表单选择城市,基于weui的城市选择器(city-picker)
- nginx做缓存服务器、代理、文件服务器等笔记
- PHPStorm+PHPStudy的PHP开发环境配置