我正在將文本文件重定向到我的C程序中,例如,輸入重定向和倒帶
./test.c < earthquakes.txt
,我讀我需要一個scanf函數像這樣的數據:
while (scanf("%4d-%2d-%2d%c%2d:%2d:%2d+%2d:%2d,%f,%f,%f,%f",
&yyyy, &mm, &dd, &junkc, &hh, &min, &sec, &junki, &junki,
&latit, &longi, &depth, &magnitude) == 13) {
printf("test\n");
num_earthquakes++;
}
,直到我讀了我需要的所有線路。做完這些之後,我該如何倒退回stdin的開始?
您通常不能倒回* stdin *;你想從''使用[rewind()函數](http://en.wikibooks.org/wiki/C_Programming/C_Reference/stdio.h/rewind),但是你不應該指望它總是對'stdin ';在某些系統上它可能工作,但在大多數系統上它會失敗。你可能更喜歡使用'fseek',因爲它報告更好的失敗。 –
2013-04-21 15:00:33
而不是在命令提示符下重定向'<'。我建議用戶'fscanf()'從文件讀取。 'rewind()'和'fseek()'是可用於將文件指針移回開始的兩個函數。 – 2013-04-21 15:00:59
好,所以有100%沒有辦法讓我做我想找的東西嗎?只要確定。這是一個賦值,我們*有*使用輸入重定向,不涉及文件指針。我可能只需要閱讀一次。 – nebffa 2013-04-21 15:06:25