<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[txtdatei in string kopieren]]></title><description><![CDATA[<p>hi,</p>
<p>ich will eine textdatei in einen string kopieren. mein gegenwärtiger code wäre</p>
<pre><code class="language-cpp">std::ifstream ifstr(&quot;bla.txt&quot;);
std::string m_vertexSrc;

std::copy( std::istream_iterator&lt;char&gt;(ifstr), std::istream_iterator&lt;char&gt;(), back_inserter(m_vertexSrc) );
</code></pre>
<p>leider wurden dabei alle leerzeichen gekillt, also habe ich noch</p>
<pre><code class="language-cpp">ifstr &gt;&gt; std::noskipws;
</code></pre>
<p>davor gehängt. nun stimmen die leerzeichen aber ich habe auch alle zeilenumbrüche drinnen. wie kann ich das in einem rutsch machen und nur die leerzeichen haben, nicht aber die zeilenumbrüche? ich will nach möglichkeit den string nicht nachbearbeiten, sondern es über std::copy oder ähnliches machen.</p>
<p>danke euch und gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178913/txtdatei-in-string-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 01:58:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178913.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Apr 2007 14:52:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to txtdatei in string kopieren on Mon, 16 Apr 2007 14:52:05 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich will eine textdatei in einen string kopieren. mein gegenwärtiger code wäre</p>
<pre><code class="language-cpp">std::ifstream ifstr(&quot;bla.txt&quot;);
std::string m_vertexSrc;

std::copy( std::istream_iterator&lt;char&gt;(ifstr), std::istream_iterator&lt;char&gt;(), back_inserter(m_vertexSrc) );
</code></pre>
<p>leider wurden dabei alle leerzeichen gekillt, also habe ich noch</p>
<pre><code class="language-cpp">ifstr &gt;&gt; std::noskipws;
</code></pre>
<p>davor gehängt. nun stimmen die leerzeichen aber ich habe auch alle zeilenumbrüche drinnen. wie kann ich das in einem rutsch machen und nur die leerzeichen haben, nicht aber die zeilenumbrüche? ich will nach möglichkeit den string nicht nachbearbeiten, sondern es über std::copy oder ähnliches machen.</p>
<p>danke euch und gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267186</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Mon, 16 Apr 2007 14:52:05 GMT</pubDate></item><item><title><![CDATA[Reply to txtdatei in string kopieren on Mon, 16 Apr 2007 14:57:05 GMT]]></title><description><![CDATA[<p>Wenn du die Zeilenumbrüche durch Leerzeichen ersetzen willst,</p>
<pre><code class="language-cpp">char convert_linebreaks(char c) {
  return c == '\n' ? ' ' : c;
}

// ...

std::transform(std::istream_iterator&lt;char&gt;(ifstr),
               std::istream_iterator&lt;char&gt;(),
               std::back_inserter(m_vertexSrc),
               convert_linebreaks);
</code></pre>
<p>Ansonsten,</p>
<pre><code class="language-cpp">std::string zeile;

while(std::getline(ifstr, zeile)) {
  m_vertexSrc += zeile;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267189</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 16 Apr 2007 14:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to txtdatei in string kopieren on Mon, 16 Apr 2007 20:04:37 GMT]]></title><description><![CDATA[<p>danke dir. habs über das transform gemacht. werde irgedwann mal testen, welches von beiden flotter ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267362</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Mon, 16 Apr 2007 20:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to txtdatei in string kopieren on Tue, 17 Apr 2007 06:35:41 GMT]]></title><description><![CDATA[<p>Schaue Dir mal den istreambuf_iterator an.</p>
<pre><code class="language-cpp">std::ifstream ifstr(&quot;bla.txt&quot;);
std::string m_vertexSrc;
std::copy( std::istreambuf_iterator&lt;char&gt;(ifstr), std::istreambuf_iterator&lt;char&gt;(), back_inserter(m_vertexSrc) );
</code></pre>
<p>Der überspringt keine Leerzeichen. Ansonsten möglicherweise effizienter ist:</p>
<pre><code class="language-cpp">std::ifstream ifstr(&quot;bla.txt&quot;);
std::ostringstream s;
s &lt;&lt; ifstr.rdbuf();
std::string m_vertexSrc = s.str();
</code></pre>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267484</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Tue, 17 Apr 2007 06:35:41 GMT</pubDate></item><item><title><![CDATA[Reply to txtdatei in string kopieren on Tue, 17 Apr 2007 08:33:49 GMT]]></title><description><![CDATA[<p>also ohne</p>
<pre><code class="language-cpp">ifstr &gt;&gt; std::noskipws;
</code></pre>
<p>davor hat er es gemacht. ich gehe auch nicht davon aus, das der iterator das macht sondern der stream.</p>
<p>und deinen vorschlag werde ich dann beim testen auch berücksichtigen. ich gebe dann hier nochmal feedback.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267544</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Tue, 17 Apr 2007 08:33:49 GMT</pubDate></item></channel></rss>