繁体   English   中英

C - feof和fseek替换/等效代码?

[英]C - feof and fseek replacement/equivalent code?

我一直在我的代码中使用上述功能,现在发现我们不被允许。 也许有人可以帮助实现替代功能? 我只允许使用Fgets,fgetc,fputc,fprintf,sprintf,fscanf,sscanf,rewind,stdin,stdout ....

关于fseek我有一个关于获取字符的一般想法我需要跳过内部字符串这是正确的思考吗?

如果有人能提供帮助,我会很高兴。 非常感谢!

显然你只能从stdin读取,它不支持搜索,但支持文件结束。

  • 要跳过字符,只需使用fread将它们读入缓冲区,然后忽略缓冲区中的结果。
  • 要检测文件结尾,请检查fread的返回值。 如果fread返回0,则无需再读取(或发生错误)。

我认为这些功能是因为某些分配限制而不是技术而被禁止的? 这取决于你想做什么:

  • feof()用于确定流是否位于文件末尾
  • fseek()用于移动到该文件中的特定位置。

您可以在读取时确定流是否位于文件末尾。 例如,从fscanf的手册页:

如果在发生任何转换(例如文件结束)之前发生输入故障,则返回值EOF

要在不使用fseek()情况下在文件中移动,可以使用允许列表中的rewind() rewind()的手册页:

rewind()函数将stream指向的流的文件位置指示符设置为文件的开头。 它相当于:

  (void)fseek(stream, 0L, SEEK_SET) 

从那里,你必须阅读你想要seek()的点seek()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM