在 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中文网其他相关文章!