1、掌握如何处理输入函数留下的垃圾
输入函数留下的“垃圾”
使用输入函数可能会留下垃圾 int x; char ch; scanf("%d",&x); scanf("%c",&ch); printf("x=%d,ch=%d\n",x,ch); 例: #include <; int main(){ int x; char ch; scanf("%d",&x); scanf("%c",&ch); printf("x=%d,ch=%d\n",x,ch); return 0; } 输入:5 输出:x=5,ch=10 回车被当作x识别 问题
方法一:
可以使用 getchar()消除 空格 #include <; int main(){ int x; char ch; scanf("%d",&x); getchar(); scanf("%c",&ch); printf("x=%d,ch=%d\n",x,ch); return 0; }
方法二:
用格式串中空格或“ %*c”来吃掉 空格 #include <; int main(){ int x; char ch; scanf("%d",&x); scanf(" %c",&ch); printf("x=%d,ch=%d\n",x,ch); return 0; }
2、掌握字符串输入函数的用法
字符串输入函数 gets()
格式:char *gets(char *s) 功能:从键盘输入以回车结束的字符串放入字符数组中,并自动加‘\0’ 说明:输入串长度应小于字符数组维数 说明:与scanf函数不同,gets函数不以空格作为字符串输入结束标志 #include <; int main(){ char s[5]; gets(s); printf("%s\n",s); return 0; } 注:gets()输入可以有空格,scanf() 输入不能有空格
3、掌握字符串输出函数的用法
字符串输出函数 puts
格式:int puts(const char *s) 功能:向显示器输出字符串(输出完,自动换行) 说明:字符数组必须以'\0' 结束 例: #include <; int main(){ char string[80]; gets(string); puts(string); return 0; } 输入什么字符串 》就输出什么字符串
4、总结
怎么处理函数留下的垃圾 字符串的输入输出函数
思考
解决输入晗数留下的垃圾,有几种方法? C语言中,如何输入或输出一个字符串?