因为我还没太学明白Markdown这东西,还不能自如的放置图片之类的,我就直接手打字简明扼要地记录一下吧。
PS:IDE为Codeblocks。
我简化了一下代码:
1 | #include <stdio.h> |
运行:
1 | Input: |
注意下一步我的操作是先按了一个a
1 | Input:a |
然后再按一下回车键,我期望得到的结果是:
1 | Input:a |
然而,我得到的结果却是:
1 | Input:a |
因为只是记录问题,我也不卖关子了。我用debug看了一下,应该是“然后再按回车”这一步出了问题。是的,因为我输入的letter是个字符,所以我在按回车键的时候,我的回车也作为字符和a一起被输入了进去。我觉得系统会先判断a,然后打印233,然后又判断回车,因为回车这个字符不是’a’,所以打印111.整个过程相当于循环了两次。
那么怎么改才能出现我期望的结果呢,以下是我的改法:
1 | #include <stdio.h> |
这样就ok了。
或者在一位同学的相助下还能这么改,就是只需在%c前面加一个\n,如下:
1 | scanf("\n%c",&letter); |
这样也可以。
因为我现在的学识还不够,也不知道是什么原理(应该是汇编语言里的吧),因此特地在博客上记录一下。
我还会继续学习,加油。
- 本文作者: はるのとなり
- 本文链接: http://example.com/2021/12/11/记录一次C语言实验中出现的问题/
- 版权声明: 以上内容著作权归はるのとなり所有。