求助!C语言ungetc()的问题!

图片说明
如图 把c=getchar()和c!='#'写成一句话的时候,第一个字符就会出现乱码的情况
图片说明
把这两句话拆开写,一切恢复正常
s_gets 是我自定义的一个IO函数,问题应该不是出在这里,实际上,换成gets_s等其他IO函数,一样会出现这样子的问题。
书翻遍了,网上也找了很久,得不到答案
跪求大神解答,谢谢~~~~~~

已经发现问题了。。。。运算符优先级问题

应该写成(c=getchar())!='#';
话说C prime plus 关于ungetc的函数原型写错了
应该是“int ungetc(char c,FILE *fp)”
而不是
应该是“int ungetc(int c,FILE *fp)”