首頁 > 後端開發 > C++ > 如何使用 ifstream 從 C 文字檔解析整數?

如何使用 ifstream 從 C 文字檔解析整數?

Mary-Kate Olsen
發布: 2024-10-29 13:18:29
原創
337 人瀏覽過

How to Parse Integers from a Text File in C   with ifstream?

使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板