for (go_on = getchar(); go_on <= '9' && go_on >= '0'; go_on = getchar())
- 问题:for的第一个参数一定会执行,执行完再验证是否符合第二个参数的条件,因此不管是否能执行循环体,每次都能被getchar从输入流中吃掉一个字符。
- 解决方法:利用ungetc()函数。原型:int ungetc(char c, FILE *stream); c为要退回的字符,stream为要退回的输入流
for (go_on = getchar(); go_on <= '9' && go_on >= '0'; go_on = getchar())