C语言的puts(),gets(),putchar(),getchar()
其实puts(),gets()属于字符串输入函数。
putchar()与getchar()属于字符输入函数。
1.字符函数
#include<stdio.h>
int main(){
char c;
printf(“请输入一个字符:”);
c=getchar();
putchar(c);
return ;
}
输出结果如下:记住下面输出的虽然是数字,本质上是字符。

2.字符串函数
#include<stdio.h>
int main(){
char str[];
printf("请输入一组长度不长于20的字符串:");
gets(str);
puts(str);
return ;
}

3.因为上面都是单次输入,所以不用考虑回车符滞留在内存所带来的错误,下面带来由于for循环带来的回车符所引起的错误:
#include<stdio.h>
int main()
{
int i = ;
for (i = ; i < ; i++)
{
printf("请输入一个字符:");
char c = getchar();
putchar(c);
printf("\n"); }
return ;
}
你会发现虽然输出了正确结果,但是会多输出一个空白的,其实这个的就是回车。你第一次输入的时候输了一个字符‘2’,而且按了一下回车,所以此时你存入内存存了这两个字符,但是getchar();只能接受一个,并且是第一个字符,这样的话,内存中的回车符就滞留了。所以默认不用再输入一个字符给getchar(),因为回车符直接赋值给getchar()了,所以解决方法是在getchar()下面再加一个getchar()来消灭掉多余的回车符导致的错误。
修改后的代码:
#include<stdio.h>
int main()
{
int i = ;
for (i = ; i < ; i++)
{
printf("请输入一个字符:");
char c = getchar();
getchar();
putchar(c);
printf("\n"); }
return ;
}

4.因为gets与puts是字符串接收函数,所以没有getchar()那么矫情,所以不会有滞留问题
#include<stdio.h>
int main()
{
int i = ;
for (i = ; i < ; i++)
{
char str[];
printf("请输入长度不长于20的字符串:");
gets(str);
puts(str);
}
return ;
}

C语言的puts(),gets(),putchar(),getchar()的更多相关文章
- c/c++学习系列之putchar、getchar、puts、gets的运用
如果您只想取得使用者输入的字元,則可以使用getchar(),它直接取得使用者輸入的字元并传回,如果只想要输出一個字元,則也可以直接使用putchar(),以下是个简单的例子: #include &l ...
- 字符的输入和输出即:getchar和putchar
#include <stdio.h> int main(int argc, const char * argv[]) { putchar(getchar());//这种方式就是输入一个字符 ...
- 【C语言】-数据输入-scanf( )和getchar( )
格式化输入函数scanf( ) scanf( )功能: 按照指定的格式读入键盘上输入的若干个任意类型的数据,存入到argument参数所指向的内存单元,函数返回值为读入并赋给argument的数据个数 ...
- C语言综述
1.预处理指令:在变异之前执行的指令. 系统自带的文件用<>,自己写的文件用""; .h成为头文件,用来声明一些常用的函数,假如想使用这些函数,就必须包含这个头文件(注 ...
- 第一章 C++语言入门
标准数据类型 C++语言提供了丰富的数据类型,如整数类型.实数类型(浮点数).字符类型等.每种数据类型均有均值范围,Dev-C++(4.9.9.2)是Windows平台 ...
- C语言程序设计--输入与输出
C语言的输入 所有的输入都是依赖于C语言函数进行的,这个函数是C语言标准库自带的,定义在头文件<stdio.h>里面,所以,要想使用与输入相关的函数,都需要包含这个头文件 #include ...
- 04C语言输入输出
C语言输入输出 输入字符getchar() #include <stdio.h> int main(){ putchar(getchar()); putchar(getchar()); ; ...
- 明解C语言
本文为阅读书籍<明解C语言-中级篇>所积累的知识点及编译书本代码时遇到的问题.部分对应代码在\Code_2018\BK_明解C语言目录下.每个代码内都含有程序功能.思路.疑惑点等内容,如有 ...
- C语言:缓冲区
缓冲区(Buffer)又称为缓存(Cache),是内存空间的一部分.也就是说,计算机在内存中预留了一定的存储空间,用来暂时保存输入或输出的数据,这部分预留的空间就叫做缓冲区(缓存).有时候,从键盘输入 ...
随机推荐
- 洛谷P1189 SEARCH 题解 迭代加深
题目链接:https://www.luogu.com.cn/problem/P1189 题目大意: 给你一个 \(n \times m\) 的矩阵,其中有一些格子可以走,一些各自不能走,然后有一个点是 ...
- 原生js获取下拉框下标
// 获取下拉框所选下标 传入下拉框的id function getselectscheckitemindex (idStr) { let o = document.getElementById(id ...
- echo 传义序列
echo 传义序列:\a 警示字符\b 退格\c 输出中忽略最后的换行符\f 清屏\n 换行\r 回车\t 水平制表符\v 垂直制表符\\ 反斜杠字符\0ddd 将字符表示成1到3位的八进制数值
- 微信小程序吸顶功能
---------------------------HTML------------------------ <view class="navbar-wrap"> ...
- Spring Boot中@Scheduled注解的使用方法
Spring Boot中@Scheduled注解的使用方法 一.定时任务注解为@Scheduled,使用方式举例如下 //定义一个按时间执行的定时任务,在每天16:00执行一次. @Scheduled ...
- 【转】最简单的安装pip的方法
网上有各种方法安装pip,针对不同的系统方法还不一样,最后发现还是下面这种方法最简单,直接了当干脆方便,适用于Windows和Linux. (1)下载pip 进入https://pypi.python ...
- Docker入门之快速安装和卸载使用Centos7
一.检查内核版本 注意:Docker要求操作系统必须是64位,如果使用的Centos内核版本为3.10以上 执行命令:uname -r 二.安装依赖软件包 执行命令:yum install -y y ...
- express项目创建
npm install express-generator -g 全局安装express生成器 express -h 帮助中心 express 项目名 npm i 安装依赖 nod ...
- Js字符串按数量分组
代码: function group(ss,step) { var r = []; function doGroup(s) { if (!s) return; r.push(s.substr(0, s ...
- Mixing Milk 混合牛奶 USACO 贪心
1009: 1.3.1 Mixing Milk 混合牛奶 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 1. ...