getchar与while循环
原创
©著作权归作者所有:来自51CTO博客作者wx632c53d017875的原创作品,请联系作者获取转载授权,否则将追究法律责任
getchar
代码1:#include<stdio.h>
#include<stdio.h>
int main()
{
int ch;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
return 0;
}
字符串的输入输出,没什么好说的。
代码2:
#include<stdio.h>
int main()
{
int ch;
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch > '9')
continue;
putchar(ch);
}
return 0;
}
这段代码是将输入字符串的数字0到9进行输出,其他字符不做输出
另外getchar结合ASCII表可实现大小写转换,符号、数字等的转换。
代码3:
#include<stdio.h>
int main()
{
int ret=0;
int ch = 0;
char password[20] = { 0 };
printf("输入密码:\n");
scanf("%s", password);
while((ch=getchar())!='\n')
{
;
}
printf("确认密码(y/n)\n");
ret = getchar();
if (ret == 'y')
printf("确认成功\n");
else
printf("放弃确认\n");
return 0;
}
这个加入while的循环
scanf() 可输入不包含空格的字符串,不读取回车,空格和回车表示输入完毕。
getchar() 只能读取用户输入缓存区的一个字符,包括回车。
输入密码时可能会有空格之类的,scanf只能获取空格前面的字符,剩下的字符留给getchar