问题描述
当我运行下面的程序时,输出给出第二个1。我调试了程序,但是我不明白为什么编译器随时都写第二个1?
const
解决方法
while语句中的条件
while (c = getchar() != EOF)
等同于
while (c = ( getchar() != EOF) )
由于运算符的优先级。如果输入未中断,则此逻辑表达式getchar() != EOF
总是产生1
。
您需要写
while ( ( c = getchar() ) != EOF)
,
您按下的 Enter 键将终端的输入“发送”到程序,并作为换行符'\n'
添加到输入缓冲区中,将在第二次迭代中读取循环。