2011-05-25 58 views
1


在我的计划,我打电话的功能与fgets:与fgets - 最大尺寸(INT NUM)

char * fgets (char * str, int num, FILE * stream); 
在一个循环

几次,然后用新的输入来处理(如果有是一个)。

在与fgets规格

,它说:

民:要读取 的最多字符数(包括最后 空字符)。通常,使用str传递的数组的长度为 。

问题是,我想rean没有超过指定的数 - 并IGNORE其余的,如果它在同一行。

我发现的是,fgets在接下来的函数调用中读取该行的下一部分。

我该如何避免这种行为?

回答

1

您需要手动执行此操作 - 使用fgets消耗字符并将结果复制到结果数组中,直到找到换行符,转储内容并继续使用fgets

0

size参数旨在防止读取比缓冲区容纳的更多数据。它不会用于跳过数据。

您必须编写代码才能读取读取后不想要的字符串部分。 ()是一个旧的C函数。这个想法是,该语言将提供最低限度的复杂性功能,您可以将它们组合起来做你喜欢的事情。它们不包含任何额外的功能。这使得每个人不必为他们不使用的东西付钱。认为乐高。