c - 使用 fgets 后有没有办法后退一行?

标签 c fgets

调用fgets后,有没有办法将刚刚读取的行移回原位?我知道当您使用 fgetc 时,您可以执行 ungetc。有什么方法可以为 fgets 做类似的事情吗?

我问这个的原因是因为我在 if 语句中有一个 fgets 而我不希望实际执行 fgets 我只是想知道它是否是否要返回 NULL。但我知道,如果 fgets 在 if 语句中,它将被执行。这就是为什么我想知道如何将它移回调用 fgets 之前文件中的点。

最佳答案

没有真菌。

可以使用ftell 在输入流中保存一个位置,然后使用fseek 重新定位到该点。它对文件很有用,但不能从终端(即标准输入)读取。

进一步阅读

关于c - 使用 fgets 后有没有办法后退一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35119170/

相关文章:

c - 如何开始创建一个在输入密码后即可打开和关闭的保险箱?

c - 从 fgets() 的返回值赋值

c - fgets()在函数中不起作用

c++ - 从/向文件读写 double

C - 程序终止(fork() 和 exec())

c - 二叉搜索树

c - 在C中返回字符字符串

c++ - C 错误 "s1, s2 are used uninitialised in this function"

c - 使用 while(getchar()! ='\n' ) 我清空标准输入,但我必须按下 Enter 键

c - Fgets 在每次调用时重写字符串数组位置 [0] 上的最后一行