c = getchar()) != ‘\n’与for循环

学习到for循环,在练习的时候遇到了 getchar()) != ‘\n’ 的问题。即在while循环中好使在for循环中回车无效(被作为字符处理。)

众所周知,getchar函数用来获取字符,而如果在循环中直接用,就会发现按回车无法将字符送入系统的情况。原因是回车也是字符~所以,我们要同时加入对回车也就是“ \n ”的判别,即有了 getchar()!='\n' ,这个办法用 while 循环好使,可到了 for 循环下就有不少新手大呼不灵。

= =我就是其中之一。

我们知道 for 循环的格式是这样的:

 

所以,按照我的理解,用for循环来获取输入字符串就应该是这样子了

可执行后果断发现回车依旧没用,果断被系统当作字符给处理了。谷歌后发现问题嘿嘿

原来,在 for(c = getchar();c != '\n';) 里 c = getchar() 在循环前执行,也就是循环中单独执行的语句,自然回车“无效”,即 !='\n' 需要与 c = getchar() 写在一起,作为for循环的执行条件,这样每次for循环,只要第二个语句的条件成立,都会执行。

发布者:R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

留下评论

电子邮件地址不会被公开。 必填项已用*标注