新手,对于一个问题的解决
热度 7已有 878 次阅读2013-11-9 21:15
|个人分类:学习过程
本人新手,各方面水平有限。 看书的时候,特别是看别人程序代码的时候,一直跟着别人写好的注释去读,去理解别人写程序的意图。当拿掉别人的代码的时候,自己去写一个同样功能的函数确范难了。比如 这几天遇到一个这个问题。
写一个输入任意字符出空格,换行,tab键除外,并返回输入的第一个字符。由于是新手,开始无处下手,后面才开始想应该会用到getchar函数,让后慢慢写,到后面测试的时候发现不对,输入一个字符的时候可以,正常运行,输入多个的时候就不对了,由于在主程序后面还要需要gets函数完成其他的功能,所以多输入的东西,对后面也会产生影响,去网上看了看需要用到fflush(stdin),由于还没学到那个地方,这个问题也用不到那个东西,所以继续使用普通的逻辑功能。刚开始用的是
if((1 == scanf("%c",&ch)) && (ch != ' ') && (ch != '\011')){
while (getchar() != '\n')
continue;
}
...
return ch;
当时用上面的代码时,会出现输入一个字母后进入了getchar键的enter键,产生错误的逻辑。
后来想了很久才想下面的方法:
if((ch = getchar()) != '\n' && ch != ' ' && ch != '\011'){
(char)kh = ch;
while ((ch = getchar) != '\n')
continue;
}
....
return kh;
后来才发现以前看得书中就有类似的代码,并且那本书中做了解释,学习方法每到位呀。