getchar只能解决一个字符
例1:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int ch = getchar();
//printf("%c\n", ch);
putchar(ch);//输出一个字符
return 0;
}
例2:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
}
int main()
{
//ctrl+z =getchar 读取结束
int ch = 0;
while ((ch = getchar())!= EOF) //EOF - end of file - 文件结束标准 EOF本质是个-1
{
putchar(ch);
}
return 0;
}
密码制作//getchar/scanf都是 输入缓冲区等待键盘输入
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入密码:>");
scanf("%s", password);//scanf 拿123456 剩下\n
printf("请确认密码(y/n):>");
//清理缓冲区做法
//getchar();//处理\n让下面的getchar进行等待 但如果出现多个特殊字符(例:空格)一个getchar不够用要用while语句设计
//清理缓存区多个字符
int tmp = 0;//tmp 就是\n的意思
while ((tmp = getchar()) !='\n')//!= 不等于的意思
{
;
}
int ch = getchar();//getchar直接拿\n不等待//所以要清理缓冲区
if (ch == 'y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}
例3:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar())!= EOF)
{
if (ch < '0' || ch > '9')//只能putchar ASCII表里面的0和9的范围
continue;
putchar(ch);
}
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183567.html原文链接:https://javaforall.cn