使用 ifstream 從 C 語言的文字檔案中解析整數
在程式設計領域,處理檔案是一種常見的需求。其中一項任務涉及從文字檔案中讀取整數以進行資料分析或圖形建構。然而,當面對包含未知行數(每行由不同數量的整數組成)的文字檔案時,解析就成為一個挑戰。
為了解決這個問題,我們可以使用可靠的 ifstream 類別和 std: :getline() 函數從文字檔案中讀取行。然而,行解析帶來了新的障礙。為了克服這個問題,讓我們深入研究兩種有效的方法:
使用 StringStream 和 While 迴圈:
此方法利用 istringstream 建構子來解析一行。它在while 循環內讀取整數,將它們附加到向量中,直到遇到換行符:
<code class="cpp">while (std::getline(infile, line)) { std::istringstream iss(line); int n; std::vector<int> v; while (iss >> n) { v.push_back(n); } // Utilize the parsed integer vector 'v' for your desired purpose }</code>
使用std::move 的單行解:
For一種更簡化的方法,我們可以採用std::move() 和for 迴圈的組合:
<code class="cpp">for (std::string line; std::getline(std::cin, line); vv.push_back(std::vector<int>(std::istream_iterator<int>(std::stay(std::istringstream(line))), std::istream_iterator<int>())) ) { }</code>
此解利用std::stay() 函式來保留輸入流的所有權,允許在for 迴圈中使用。它迭代各行,使用 std::istream_iterator 將整數解析為向量>。
以上是如何使用 ifstream 從 C 文字檔解析整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!