首頁  >  文章  >  後端開發  >  如何有效地將文件的全部內容讀取到 C 中的字串中?

如何有效地將文件的全部內容讀取到 C 中的字串中?

Patricia Arquette
Patricia Arquette原創
2024-10-27 06:45:29695瀏覽

How can I efficiently read the entire contents of a file into a string in C  ?

在C 中高效地將文件內容讀取到字符串中

在C 中,與Perl 等腳本語言不同,讀取文件的全部內容在單一操作中轉換為字串是不能直接使用的。但是,有一些有效的方法可以實現此功能。

要將檔案內容讀取到字串中,我們可以利用 C 的檔案輸入處理功能。這是一個有效的解決方案:

<code class="cpp">#include <fstream>
#include <string>

int main(int argc, char** argv)
{
  std::ifstream ifs("myfile.txt");
  std::string content( (std::istreambuf_iterator<char>(ifs) ),
                       (std::istreambuf_iterator<char>()    ) );

  return 0;
}</code>

程式碼使用輸入檔案流讀取名為「myfile.txt」的檔案的內容,並將它們儲存在名為「content」的字串變量中。用於將檔案內容指派給字串的表達式為:

<code class="cpp">std::string content( (std::istreambuf_iterator<char>(ifs) ),
                   (std::istreambuf_iterator<char>()    ) );</code>

此表達式利用迭代器從輸入檔案流中逐個字元讀取並建構字串。第一個迭代器使用輸入檔案流進行初始化,而第二個迭代器是預設構造的「end」迭代器,表示檔案結尾。

或者,您可以使用以下程式碼覆寫現有字串變數:

<code class="cpp">std::string content;
content.assign( (std::istreambuf_iterator<char>(ifs) ),
                (std::istreambuf_iterator<char>()    ) );</code>

此程式碼以檔案內容覆寫現有字串變數「content」的值。

以上是如何有效地將文件的全部內容讀取到 C 中的字串中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn