我读的书“C程序设计一种现代方法”,我看到了一个问题: 显示如何加以区分:"%f"
VS "%f "
(以后%F有一个空格)功能scanf()
。需要帮助有关函数scanf函数用C
你能帮我理解"%f "
是如何工作的。
我读的书“C程序设计一种现代方法”,我看到了一个问题: 显示如何加以区分:"%f"
VS "%f "
(以后%F有一个空格)功能scanf()
。需要帮助有关函数scanf函数用C
你能帮我理解"%f "
是如何工作的。
第二个需要一个空格,然后输入一个浮点数。如果你有多个浮子从用户采取那么你可以写类似 -
scanf("%f %f", &f1, &f2);
谢谢。但为什么我必须输入一些东西?吸这个! –
@Nguyen。我相信scanf忽略的唯一“空格”是:输入流中存在的选项卡,空格键和换行符(“输入”键)。当“空格”位于格式说明符之间时,例如scanf(“%f%f”,...),它被忽略。但在第二个例子中,空格后面没有其他格式说明符,即(“%f”)...所以它可能期望流中有更多的数据。然后,在你输入'something'之后,它试图将它存储在一个变量中,但是因为只有一个变量'x',例如scanf(“%f”,&x),它会忽略你输入的'东西'并返回。 – iammowgli
@NguyễnVăn-Dũng,为什么在这里使用俚语。如果您认为某个帖子(回答/问题)不正确,您可能会投票拒绝投票。请不要使用俚语。 – KajolK
"%f"
从stdin
指示scanf()
到
char
放回stdin
。char
表示float
。继续,直到没有更多的输入或遇到一个非-char
。把char
放回stdin
。"%f "
指示scanf()
到上述步骤1和2,然后
stdin
并丢弃空白,直到没有更多的输入或非空白遇到。把char
放回stdin
。 (就像步骤1)注意:所有scanf()
格式说明除外"%c"
,"%n"
,"%[]"
执行进一步的扫描之前的步骤1。
这里有一些有用的scanf相关信息:http://stackoverflow.com/questions/1247989/how-do-you-allow-spaces-to-be-entered-using-scanf – iammowgli
你可以看到更多的细节在[here](http://www.cplusplus.com/reference/cstdio/scanf/)中有'scanf()'函数。阅读'格式'的描述,你的问题的答案是如此清楚地解释。 –