首页  >  文章  >  后端开发  >  如何有效地将文件的全部内容读取到 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