用 C 在文字檔案中尋找特定行
使用 C 中的 fstream 函式庫,可以方便地讀寫文字檔。然而,直接導航到特定線路可能具有挑戰性。這個問題探討了這個問題的潛在解決方案。
問題:
如果使用 fstream 開啟文字文件,是否有直接的方法可以跳到特定行,例如第8行?
答案:
雖然fstream提供了設定檔的seek指標的方法,但是它直接不允許跳到特定行。一個實用的方法是循環遍歷文件,忽略所有行,直到到達所需的行。實作方法如下:
<code class="cpp">std::fstream& GotoLine(std::fstream& file, unsigned int num) { file.seekg(std::ios::beg); for (int i = 0; i < num - 1; ++i) { file.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } return file; }</code>
此函數取得檔案及其應尋找的行號並傳回檔案物件。
範例:
考慮一個包含以下內容的文字檔案:
1 2 3 4 5 6 7 8 9 10
以下C 程式示範如何使用GotoLine 函數:
<code class="cpp">int main() { using namespace std; fstream file("bla.txt"); GotoLine(file, 8); string line8; file >> line8; cout << line8; cin.get(); return 0; }</code>
輸出:
8
在這個例子中,程式讀取文字檔案的第八行並列印內容,即「8」。
以上是使用C fstream可以直接跳到文字檔案中的特定行嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!