我一直在我的代码中使用上述功能,现在发现我们不被允许。 也许有人可以帮助实现替代功能? 我只允许使用 与fgets,龟etc,的fputc,fprintf中,sprintf的,的fscanf,sscanf的,倒带,STDIN,STDOUT ....
关于fseek我有一个关于获取字符的一般想法,我需要跳过内部字符串 这是正确的想法吗?
如果有人可以提供帮助,我会很高兴。 非常感谢!
答案 0 :(得分:1)
显然你只能从stdin读取,这不支持搜索,但支持文件结束。
答案 1 :(得分:1)
我认为这些功能是由于某些分配限制而不是技术而被禁止的?这取决于你想做什么:
feof()
用于确定流是否位于文件末尾fseek()
用于移动到该文件中的特定位置。您可以在读取时确定流是否位于文件末尾。例如,来自fscanf
的手册页:
如果在发生任何转换(例如文件结束)之前发生输入失败,则返回值
EOF
。
要在不使用fseek()
的情况下在文件中移动,您可以使用允许列表中的rewind()
。
来自rewind()
的手册页:
rewind()函数将stream指向的流的文件位置指示符设置为文件的开头。它相当于:
(void)fseek(stream, 0L, SEEK_SET)
从那里开始,您必须阅读seek()
之前想要的内容。