问题描述
在我的程序中,我正在调用fgets函数:
char * fgets ( char * str,int num,FILE * stream );
循环几次,然后处理新输入(如果有的话)。
在fgets规范中,它表示:
号码:
读取的最大字符数(包括最后一个字符)
空字符)。通常,长度
使用作为str传递的数组。
问题是我想保留的数字不超过指定的数字-如果它位于同一行,则忽略其余的数字。
我发现,在下次调用该函数时,这些fget读取了该行的下一部分。
我如何避免这种行为?
解决方法
您将需要手动执行-使用
fgets
使用字符,并将结果复制到结果数组中,直到找到换行符,转储内容,然后继续fgets
。
,size参数用于防止读取的数据超出缓冲区的容量。跳过数据将不起作用。
您必须编写代码才能在读取字符串后丢弃不需要的部分。
fgets()是旧的C函数。想法是该语言将提供最少的复杂性功能,您可以将其组合以完成自己喜欢的事情。它们不包含任何故意的额外功能。这使每个人都不必为自己不使用的东西付费。想想乐高。