getchar()和gets()
因为最近被getchar弄的很烦所以今天中午好好梳理一下
getchar()
从缓冲区读走一个字符,相当于清除缓冲区
前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个
getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误
下面用一个最简单的例子来解释
这里可以看到当连续输入两个字符时,如果加上回车换行,第二个人字符读入的就是\n回车符
加入getchar()把回车符给吸收时就可以正常读入输出
gets()
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符
不属于这个字符串。
gets()函数存在一个严重的缺陷,这个缺陷就是:它不会检查数组是否能够装得下输入行。
对于get(s)来说,只有回车键才是结束的标识,空格不是输入结果标识,所以用gets这个函数就可以实现输入带空格的字符串
scanf()读入遇到空格就会结束
下面举一个小例子
可以看到第二次的读入后面的world并没有读入进去
getchar()和gets()相关推荐
- C语言中(字符串)输入scanf()、gets()、fgets()以及getchar()、getc()函数的联系与区别
scanf()函数的输入基于获取"单词",如果使用%s格式,字符串以第一个非空白字符开始读入,读到(但不包括)下一个空白字符(可以是空格.制表符或者换行符).使用scanf()把一 ...
- 区分C语言中getch、getche、fgetc、getc、getchar、fgets、gets
首先,这两个函数不是C标准库中的函数, int getch(void) //从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符.也就是,不带回显. int getche(v ...
- C语言中文件的读写(fputc和fgetc)(putchar和getchar)
文件打开之后就可以对文件进行读写了. 1.fputc(ch,fp); 将字符ch输出到(即写到)fp所指向的文件中.如果输出成功,返回字符ch的值,否则返回EOF(-1) putchar(c) 是从f ...
- getchar返回int类型
#include <stdio.h> /* copy input to output; 2nd version */ main() { int c; c = getchar(); whil ...
- Balkan2007]Toponyms[链式前向星建字典树+getchar()读入优化]
思路容易想,卡空间和时间就吐了 用链式前向星压缩空间,用getchar()一位一位读加快读入 #include <iostream> #include <cstdio> #in ...
- c程序设计语言中printf,编程序 用getchar函数读入两个字符c1和c2,然后分别用putchar和printf函数输出这两个字符。请问...
编程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar和printf函数输出这两个字符.请问: 1. 变量C1,C2应定义为字符型或整型?或二者皆可? 答:在这个题目里,变量C ...
- c语言用getchar函数输入两个字符c1,c语言:用getchar函数读入两个字符给c1,c2,用putchar和printf输出。思考问题...
用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符.思考以下问题: (1)变量c1和c2定义为字符型还是整型?或二者皆可? (2)要求输出c1和c2的ASC ...
- 利用getchar()消除多余字符数据(主要是“回车”)
我是这样写的: #include <stdio.h> int main() { char a,b,c; char t; while(scanf("%c%c ...
- getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析...
2013-07-18 21:35:58 getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析. char是字符型数 ...
- putchar(c1)在C语言中表示,C语言中的getchar和putchar详解
一.首先给出<The_C_Programming_Language>这本书中的例子: #include int main( ) { int c; c = getchar(); while ...
最新文章
- 协整检验r语言代码_R语言学习笔记(一):时间序列分析
- BYTE,WORD,DWORD的大小及一些特殊的高低位宏(取高位 取低位)
- jquery点击页面其他位置隐藏div
- 解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp
- mate30后续用鸿蒙系统,mate30可以升级鸿蒙不?升级后还能退回原系统吗?
- 【UFBA Practice Session for Brazilian ICPC Regionals - 2018】Carnival【强连通图求“关键边”】
- 如何用c语言编写炫酷烟花程序,简单屏幕烟花程序
- 64qam星座图matlab,16QAM_星形和矩形星座图调制解调MATLAB代码(最新整理)
- 算法:用Java实现一个mini布隆过滤器(BloomFilter)
- 一篇文章了解爬虫技术现状
- 学习编程与学习编程语言不同
- floor()报错注入
- MinGW和MSYS简介
- 爬虫有道翻译接口+图片文字识别
- MTK 智能手机平台原生应用介绍
- 用git连接gitee
- 【DRP项目】安装Oracle数据库之服务端安装+客户端安装(一)
- 【Java】创建文件夹
- Java学习--网络,图形界面和数据库
- Android 代码命名规范 -- 提高代码可以读性