【发布时间】:2015-06-09 02:13:27
【问题描述】:
我在终端中使用< I/O 重定向将一个文本文件输入到我的C 程序中:
MyProgram.exe < "data.txt"
然后在我的代码中使用getchar() 和scanf() 从重定向的输入中读取。但是,由于这是一个重定向文件,我不能使用 C 文件指针来回退缓冲区。
(我想计算任意大小的文件中的行数,以便初始化一个数组,然后我想使用getchar() 和/或scanf() 重新读取该文件。
使用重定向输入时如何实现倒带或刷新?
【问题讨论】:
-
你不能倒带
-
你真的试过倒带吗?当 stdin 是常规文件时 fseek 仅在 stdin 上工作,而当您像这样重定向时,stdin 是常规文件。
-
@Lashane:鉴于标准输入来自磁盘文件,它可以像连接到磁盘文件的任何其他文件流一样倒带。
标签: c input flush io-redirection rewind