snipt

Ctrl+h for KB shortcuts
Notice: Snipt is moving away from free accounts on May 1st, 2014. Read more about the transition here.
#13460

C++

File contents to std::string

#include <fstream>
#include <iostream>
#include <vector>
#include <string>

const char* file_name = "data.txt";

std::ifstream file(file_name, std::ios::in | std::ios::binary | std::ios::ate);
  if (file.is_open() && file.tellg() ) {   
    file.seekg(0, std::ios::beg);
  }

std::string* contents = new std::string( std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>() );
file.close();
// Do stuff with contents
delete contents;
https://snipt.net/embed/f15c8203571c363d5588af5d3dd01b4f/
https://snipt.net/raw/f15c8203571c363d5588af5d3dd01b4f/
f15c8203571c363d5588af5d3dd01b4f
cpp
C++
16
2014-04-25T04:50:08
True
False
/api/public/snipt/13460/
file-contents-to-stdstring
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a></pre></div></td><td class="code"><div class="highlight"><pre><span id="L-1"><a name="L-1"></a><span class="cp">#include &lt;fstream&gt;</span> </span><span id="L-2"><a name="L-2"></a><span class="cp">#include &lt;iostream&gt;</span> </span><span id="L-3"><a name="L-3"></a><span class="cp">#include &lt;vector&gt;</span> </span><span id="L-4"><a name="L-4"></a><span class="cp">#include &lt;string&gt;</span> </span><span id="L-5"><a name="L-5"></a> </span><span id="L-6"><a name="L-6"></a><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">file_name</span> <span class="o">=</span> <span class="s">&quot;data.txt&quot;</span><span class="p">;</span> </span><span id="L-7"><a name="L-7"></a> </span><span id="L-8"><a name="L-8"></a><span class="n">std</span><span class="o">::</span><span class="n">ifstream</span> <span class="n">file</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">ios</span><span class="o">::</span><span class="n">in</span> <span class="o">|</span> <span class="n">std</span><span class="o">::</span><span class="n">ios</span><span class="o">::</span><span class="n">binary</span> <span class="o">|</span> <span class="n">std</span><span class="o">::</span><span class="n">ios</span><span class="o">::</span><span class="n">ate</span><span class="p">);</span> </span><span id="L-9"><a name="L-9"></a> <span class="k">if</span> <span class="p">(</span><span class="n">file</span><span class="p">.</span><span class="n">is_open</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span class="n">file</span><span class="p">.</span><span class="n">tellg</span><span class="p">()</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-10"><a name="L-10"></a> <span class="n">file</span><span class="p">.</span><span class="n">seekg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">ios</span><span class="o">::</span><span class="n">beg</span><span class="p">);</span> </span><span id="L-11"><a name="L-11"></a> <span class="p">}</span> </span><span id="L-12"><a name="L-12"></a> </span><span id="L-13"><a name="L-13"></a><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">*</span> <span class="n">contents</span> <span class="o">=</span> <span class="k">new</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">(</span> <span class="n">std</span><span class="o">::</span><span class="n">istreambuf_iterator</span><span class="o">&lt;</span><span class="kt">char</span><span class="o">&gt;</span><span class="p">(</span><span class="n">file</span><span class="p">),</span> <span class="n">std</span><span class="o">::</span><span class="n">istreambuf_iterator</span><span class="o">&lt;</span><span class="kt">char</span><span class="o">&gt;</span><span class="p">()</span> <span class="p">);</span> </span><span id="L-14"><a name="L-14"></a><span class="n">file</span><span class="p">.</span><span class="n">close</span><span class="p">();</span> </span><span id="L-15"><a name="L-15"></a><span class="c1">// Do stuff with contents</span> </span><span id="L-16"><a name="L-16"></a><span class="k">delete</span> <span class="n">contents</span><span class="p">;</span> </span></pre></div> </td></tr></table>
c++, files