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;
}