C语言的puts(),gets(),putchar(),getchar()
2024-09-06 23:37:37
其实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 ;
}
最新文章
- js的Array的map和sort实现方法
- Java %c0%ae 安全模式绕过漏洞
- 如何做好IT运营.
- delphi 枚举类型
- Java学习第五天
- bzoj4080
- 十个最好的Java性能故障排除工具
- bat编程基本知识
- char与varchar、nvarchar区别
- JQuery开发报错集锦
- brew 安装指定版本命令行工具 tmux 多版本实现
- linux服务器运维
- MVC设置启动页
- python tkinter-按钮.标签.文本框、输入框
- 你在AutoHotKey面前居然敢比调音量 - imsoft.cnblogs
- Vuforia AR实战教程
- 15.Git面试题
- 线程的同步之Synchronized的使用
- 170331、58到家MQ如何快速实现流量削峰填谷
- springboot2.0 集成elasticsearch,实现检索、分页、排序