[英]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.