我是C的初学者,我正在编写一个代码来打印用户输入字符的正方形.
通常当我们需要输入两个整数(比如x和y)时scanf() 我们写这个scanf("%d%d", &x, &y)但是根据我的代码的需要我应该输入一个整数(比如m)和一个字符(比如ch).
我把它写成了scanf("%d%c", &x, &ch)但它有一个错误,当我执行程序时它只要求输入积分值然后它就会停止执行.
我搜索了这一点,我发现我需要把间距%d和%c作为scanf("%d %c", &x, &ch);
任何人都可以解释为什么我们需要在这之间留出空间吗?
R S*_*ahu 11
格式字符串中的空白字符的含义(来自http://www.cplusplus.com/reference/cstdio/scanf/?kw=scanf):
空白字符:该函数将读取并忽略在下一个非空白字符之前遇到的任何空格字符(空格字符包括空格,换行符和制表符 - 请参阅isspace).格式字符串中的单个空格验证从流中提取的任何数量的空白字符(包括无).
当您的代码是:
scanf("%d%c", &x, &ch)
Run Code Online (Sandbox Code Playgroud)
然后你进入
10
Run Code Online (Sandbox Code Playgroud)
在你的控制台:
10被读取并存储在x.ch.如果你使用
scanf("%d %c", &x, &ch)
Run Code Online (Sandbox Code Playgroud)
然后你进入
10
Run Code Online (Sandbox Code Playgroud)
10被读取并存储在x.ch.这是因为stdin通常是行缓冲的.| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |