最大大小(int num)

maximum size (int num)

本文关键字:num int      更新时间:2023-10-16


在我的程序中,我调用函数fgets:

char * fgets ( char * str, int num, FILE * stream );  

循环几次,然后处理新的输入(如果有)。

在fgets规范中,它说:

数量:要读取的最大字符数(包括最终字符空字符)。通常,长度作为str传递的数组的。

问题是,如果在同一行中,我想重新输入不超过指定的数字,并忽略其余部分。

我发现,fgets在对函数的下一次调用中读取行的下一部分。

我该如何避免这种行为?

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

size参数用于防止读取超出缓冲区容量的数据。它不适用于跳过数据。

您必须编写代码,以便在读取字符串后丢弃不需要的部分。

fgets()是一个旧的C函数。其理念是,该语言将提供最低复杂度的函数,您可以将这些函数组合起来做您喜欢的事情。它们不包括任何故意的额外功能。这使每个人都无法为自己不用的东西付费。想想乐高吧。