簡體   English   中英

如何在C中重用(快退)重定向的文件

[英]How to reuse (rewind) a redirected file in C

我使用終端中的< I / O重定向將文本文件輸入到C程序中:

MyProgram.exe < "data.txt"

然后在我的代碼中使用getchar()scanf()從重定向的輸入中讀取。 但是,由於這是重定向文件,所以我不能使用C文件指針來倒回緩沖區。

(我想對任意大小的文件中的行數進行計數,以便初始化數組,然后使用getchar()和/或scanf()重新讀取文件)。

使用重定向輸入時,如何實現快退或刷新?

但是,由於這是一個重定向的文件,因此我無法使用ac文件指針來回退緩沖區。

你當然可以! 這真的很容易。 當一個文件被重定向到標准輸入時, stdin是一個文件,因此您可以像對待其他文件一樣對待它:

rewind(stdin);

但是請記住,這僅在從文件重定向標准輸入時才有效。 如果標准輸入來自終端機或管道(例如cat file.txt | myapp ),它將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM