getchar 和 putchar
getchar是获取字符。
使用规范:
成功时,返回读取的字符(提升为int值)。
返回类型是int以适应表示失败的特殊值EOF:
如果标准输入位于文件末尾,则函数返回EOF 。 如果发生其他一些读取错误,该函数也会返回EOF。
putchar 是将字符写入标准输出。
使用规范:
成功时,返回写入的字符。
如果发生写入错误,则返回EOF。
int main()
{int ch = getchar();//读取到一个字符的ASCII码值,返回int型。putchar(ch);//接受字符的ASCII码值,将他打印出来。return 0;}
输入A打印A,接受一个字符打印一个字符。
int main()
{int ch = 0;while ((ch = getchar()) != EOF)//当ch 不等于 EOF(-1)时{putchar(ch);//打印ch}return 0;
}
这是因为当我们输入一个字符时需要输入回车来确认,getchar会读取回车,当我们输入A 回车,他就会打印A 回车。
如果想停止程序需要按ctrl + z。
我们来写一个程序
int main()
{char password[20] = { 0 };printf("请输入密码:>");scanf("%s", password);printf("请确认密码(Y/N):");int ch = getchar();if (ch == 'Y')printf("确认成功:\n");elseprintf("确认失败:\n");return 0;
}
运行结果:
你能找到为什么会直接打印确认失败的原因吗?
我们只需要在加一个 getcha() 来把回车(\n)读取清理掉。
新的代码如下:
当然这个代码也是有bug的,当我们scanf输入的数据中有空格时,scanf读取到空格就会停止。
我们来看图:
这时候我们可以写一个while循环
int main()
{char password[20] = { 0 };printf("请输入密码:>");scanf("%s", password);printf("请确认密码(Y/N):");int tmp = 0;while ((tmp = getchar()) != '\n'){;}/*当getchar读取的不是\n时,就一直循环直到读取到\n,开始判断,等于\n,为假,把\n拿走并且停止循环。*/int ch = getchar();if (ch == 'Y')printf("确认成功:\n");elseprintf("确认失败:\n");return 0;
}
还有一种方法
我们把%s改成%[^\n],scanf里的内容输入结束后按回车,按回车之前的字符都会传到缓冲区
目前了解的有关知识就这么多了,如果有后续了解更多知识我还会来更新的。
文章如果有错误或者不好的地方请提出,我会积极听取建议并修改的。
getchar 和 putchar相关推荐
- putchar(c1)在C语言中表示,C语言中的getchar和putchar详解
一.首先给出<The_C_Programming_Language>这本书中的例子: #include int main( ) { int c; c = getchar(); while ...
- 分支 getchar和putchar
getchar()和putchar()是专门面向字符的函数. #include<stdio.h> #define SPACE ' ' int main(void){ char ch; wh ...
- if--(else)语句,getchar()和putchar()、、||、!逻辑运算符
1.if 语句;示例程序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include<stdio.h> int main ...
- C语言getchar()和putchar()函数
前言: getchar()和putchar()函数都是单字符函数I/O,每次只能处理一个字符.getchar()是输入,putchar()是输出. 在了解函数之前先说一下缓冲区,什么是缓冲区?用户输入 ...
- getchar与putchar在C语言中的作用
1.getchar和putchar的作用 getchar 输入一个字符,但是其输出的内容是ASCII码值 ch = getchar 用一个变量去接收ASCII值 putchar(ch) 输出一个字符到 ...
- C语言的getchar和putchar
getchar和putchar输入输出字符 getchar用来输入单个字符,putchar用来输出单个字符,在某些scanf函数使用不方便的场合可以使用getchar来输入字符. 一个简单的例子 #i ...
- c语言 用getchar和putchar实现字符串的输入输出
getchar和putchar是只能输入单一字符的 运用循环实现字符串的输入输出
- C语言字符变量输出值,C语言,交换任意两个字符型变量的值并输出结果。要求:利用getchar和putchar函数。...
C语言,交换任意两个字符型变量的值并输出结果.要求:利用getchar和putchar函数.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶 ...
- C语言中getchar()和putchar()函数
目录: 1.getchar()和putchar()函数的定义. 2.getchar()函数为什么用int定义返回值类型. 3.函数getchar()和函数scanf()的工作原理. 一.getcha ...
- 一文搞懂getchar()和putchar()的奇怪现象
1.首先来看一个例子: #include <stdio.h>int main( ) {int c;c = getchar();while (c != EOF){putchar();c= ...
最新文章
- Redis单机版本框架
- Android新手之旅(10) 嵌套布局
- 30KVA UPS电源安装电线的配置
- ps里面的批处理教程
- ipsec NAT-T与穿透
- MBR与GPT的区别
- 综合实例_为啥要做“三维管线综合”?看个实例就明白
- Quartz的简单使用
- 9-13 ruby环境准备
- git查看某次提交的内容
- OIO下的socket传输文件
- 立方根c语言,在C ++中找到数字的立方根
- python 请在微信客户端打开_完美解决 请在微信客户端打开链接
- java循环例题while型_Java基础--while、do-while、for循环结构(附例题)
- 学计算机的人常备哪些护眼的东西,常用电脑的人如何保护视力?
- Huggingface简介及BERT代码浅析
- mulesoft 入门与实践-1
- 交并比 (IoU), mAP (mean Average Precision), 非极大值抑制 (NMS, Soft NMS, Softer NMS, IoU-Net)
- 筛法(线性筛,厄拉多塞筛)
- 关于“为什么选择我们公司?”应聘者如何回答?
热门文章
- DVWA------暴力破解(全级别详解)
- java long初始化_Java变量的初始化
- 【原创】Pig 0.10.0 piggybank 如何编译
- 微信小程序——button添加背景图片
- 第二单元电梯作业总结
- 视频教程-赵强老师:大数据从入门到精通(7)HBase-Hbase
- 云南计算机专修学院,云南城市建设职业学院五年制大专热门专业
- 公司新闻稿怎么写更吸引眼球?
- hp计算机如何用u盘启动,HP惠普笔记本如何进入bios设置u盘启动装系统?-电脑自学网...
- 五十二、GUI布局tkinter完善Python小项目