- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我运行下面的代码时,会产生一个非常奇怪的结果。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
for ( ; ; )
{
char test;
printf("Please enter 'w' ");
scanf("%c", &test);
printf("%c\n", test);
if (test == 'w')
{
printf("Working\n");
}
else
{
printf("ERROR\n");
return 0;
}
}
}
我想要发生的是,每当我输入“w”时,它都会继续循环,这样我就可以再次输入“w”。尽管我输入了“w”,但它的作用是转到 else 语句。它似乎只是跳过 scanf()
行。我问过所有我认识的懂 C 的人,但他们都不知道如何解决这个问题。
有人请帮帮我!
最佳答案
这是因为您输入了 w,然后输入了 ENTER。因此,输入中有 2 个字符 'w'
,后跟一个换行符 (\n
)。后者导致在第二次迭代时采用 else
分支。
请注意,标准输入在连接到终端时是行缓冲的。如果您需要立即处理角色,有一些方法可以做到这一点。请参阅comp.lang.c FAQ有关详细信息(“如何在不等待 RETURN 键的情况下从键盘读取单个字符?如何阻止字符在键入时在屏幕上回显?”)。
请注意,对于健壮的编程必须检查scanf
的返回值。它返回成功转换的项目数。如图所示,您的代码无法正确处理文件结尾的情况,即当用户键入 Ctrl-D 时(假设是 Unix 终端)。然后 scanf 返回 EOF
并且不执行任何转换,但您使用 test
就好像它包含有意义的值一样。
关于c - C scanf ("%c")函数一一读取字符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41476377/
我想为我指定的每个类别 ID 检索最新帖子的 mongo 选择器。 这是 forumTopics 集合中对象的示例: { _id: ..., createdTime: [unix ep
我正在尝试一个接一个地运行两个ajax 请求。所以,我可以使用 ajax success() 函数: $.ajax({ ... success: function() {
这是我的 Codepen 链接:resizable event 我正在使用可调整大小的 Jquery UI,一切正常,但现在我希望每个 block 上的可调整大小事件只能一个接一个地激活,如果单击另一
我在 Kotlin 上使用 MongoDB 和 Spring,我希望我的应用程序在启动时填充 MongoDB 集合。 (并在每次启动时清洁它) 我的问题是,如果我正在填充的某些数据有问题,我该如何一一
我有一些元素的列表,我想要一个接一个的 fadeIn 元素,意味着如果第一个元素完成 fadeIn 然后下一个元素 fadeIn 等等,在我给定的代码中我不知道出了什么问题,请帮助我.. HTML A
正如很多地方所说,对于大小为 10000 的输入数据,批量预测整个数据比逐行预测要快得多(在这两种情况下,model.n_jobs=1)。 我知道一对一的解决方案有很多开销。但是在在线服务中,请求是一
我在使用 5 个 div 元素使其响应时遇到了问题。 我有这样的 div 元素: Here Image 1 Here Image 2 Here
我是一名优秀的程序员,十分优秀!