学习到for循环,在练习的时候遇到了 getchar()) != ‘\n’ 的问题。即在while循环中好使在for循环中回车无效(被作为字符处理。)
众所周知,getchar函数用来获取字符,而如果在循环中直接用,就会发现按回车无法将字符送入系统的情况。原因是回车也是字符~所以,我们要同时加入对回车也就是“ \n ”的判别,即有了 getchar()!='\n' ,这个办法用 while 循环好使,可到了 for 循环下就有不少新手大呼不灵。
= =我就是其中之一。
我们知道 for 循环的格式是这样的:
1 |
for(赋值或某语句(在循环的开始);执行条件,若值为真则循环;循环完一次执行这里的语句) |
所以,按照我的理解,用for循环来获取输入字符串就应该是这样子了
1 |
for(c = getchar();c != '\n';) |
可执行后果断发现回车依旧没用,果断被系统当作字符给处理了。谷歌后发现问题嘿嘿
原来,在 for(c = getchar();c != '\n';) 里 c = getchar() 在循环前执行,也就是循环中单独执行的语句,自然回车“无效”,即 !='\n' 需要与 c = getchar() 写在一起,作为for循环的执行条件,这样每次for循环,只要第二个语句的条件成立,都会执行。
本文由 落格博客 原创撰写:落格博客 » c = getchar()) != ‘\n’与for循环
转载请保留出处和原文链接:https://www.logcg.com/archives/131.html