fflush(stdin)在c中的gets()之前

时间:2014-05-10 04:44:18

标签: c gets fflush

好的,我正在解决代码厨师的问题(非常简单)。 它简要地说:

- 将给出一个字符串的问题,并且必须生成另一个字符串,该字符串没有在问题字符串中使用任何字母。假设大写和小写相同。

- 如果使用了所有字母,只需打印〜符号。

我的整个逻辑是正确的,除了我在输入中发现错误,这是由于在gets()之前使用fflush(stdin)引起的。请解释为什么这是一个错误?忽略剩下的代码。

问题链接:http://www.codechef.com/problems/NOLOGIC/

链接到错误的解决方案:http://www.codechef.com/viewsolution/3881817

更正解决方案的链接:http://www.codechef.com/viewsolution/3881827

请注意:在更正的代码中,我只更改了不使用fflush(stdin)和使用getchar()

1 个答案:

答案 0 :(得分:2)

因为fflush(stdin)的行为是特定于实现的;并且由于实施(针对此问题)未知,行为也将是未知的。

您可能会安全地预期fflush(stdin)的行为无法预测。