一段時間(的fscanf(跟蹤文件「%s」,操作碼)!= EOF){}嗒嗒如何在符合條件時讓fscanf重新讀取一行?
偶爾我需要使我的代碼的fscanf重新閱讀時一定條件的線路得到滿足。這可能嗎;我會怎麼做?
謝謝。
一段時間(的fscanf(跟蹤文件「%s」,操作碼)!= EOF){}嗒嗒如何在符合條件時讓fscanf重新讀取一行?
偶爾我需要使我的代碼的fscanf重新閱讀時一定條件的線路得到滿足。這可能嗎;我會怎麼做?
謝謝。
假設輸入文件是可搜索(而不是,例如,管道或網絡流),你可以這樣做:
fgetpos(tracefile, &position_before);
fscanf(tracefile, "%s ", opcode);
if (need_to_rescan) { fsetpos(tracefile, position_before); }
備份和重新掃描可能是非常低效的(以及問題不支持來自管道的輸入等),所以你可能要考慮是否有其他選擇。
我幾乎從不直接使用fscanf
,因爲知道文件指針在錯誤狀態下的位置是一種痛苦。
我使用fgets
來拉一行,然後我可以使用sscanf
來記錄我心中的內容,而不必返回到文件重新讀取。
+1,我會這樣做,而不是重讀。 – 2010-04-29 14:06:49