<?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[Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern?]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

bool char_valid (int c)
{
	//...
	return true;
}

bool read_file ( string&amp; file_content, string filename )
{
	ifstream infile ( filename.c_str () );
	int c = 0;
	if ( infile == NULL )
	{
		cout &lt;&lt; filename &lt;&lt; &quot;: &quot; &lt;&lt; strerror(errno) &lt;&lt; endl;
		return false;
	}
	while ( infile.eof() == false )
	{
		c = infile.get();
		if ( char_valid(c) )
			file_content.push_back (c); // warning C4244: 'Argument': Konvertierung von 'int' in 'char', möglicher Datenverlust
	}
	return true;
}

int main()
{
	string f(&quot;test.txt&quot;);
	string content;

	read_file (content, f);

	return 0;
}
</code></pre>
<p>Hallo, ich bekomme ne Warnung wegen Zeile 25:</p>
<blockquote>
<p>warning C4244: 'Argument': Konvertierung von 'int' in 'char', möglicher Datenverlust</p>
</blockquote>
<p>Klar, kann ich wegcasten:</p>
<pre><code class="language-cpp">file_content.push_back ((char)c);
</code></pre>
<p>Oder gibts nen push_back für chars?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245654/datei-zeichenweise-einlesen-warnung-ignorieren-bzw-verhindern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 17:32:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245654.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Jul 2009 18:14:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:14:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

bool char_valid (int c)
{
	//...
	return true;
}

bool read_file ( string&amp; file_content, string filename )
{
	ifstream infile ( filename.c_str () );
	int c = 0;
	if ( infile == NULL )
	{
		cout &lt;&lt; filename &lt;&lt; &quot;: &quot; &lt;&lt; strerror(errno) &lt;&lt; endl;
		return false;
	}
	while ( infile.eof() == false )
	{
		c = infile.get();
		if ( char_valid(c) )
			file_content.push_back (c); // warning C4244: 'Argument': Konvertierung von 'int' in 'char', möglicher Datenverlust
	}
	return true;
}

int main()
{
	string f(&quot;test.txt&quot;);
	string content;

	read_file (content, f);

	return 0;
}
</code></pre>
<p>Hallo, ich bekomme ne Warnung wegen Zeile 25:</p>
<blockquote>
<p>warning C4244: 'Argument': Konvertierung von 'int' in 'char', möglicher Datenverlust</p>
</blockquote>
<p>Klar, kann ich wegcasten:</p>
<pre><code class="language-cpp">file_content.push_back ((char)c);
</code></pre>
<p>Oder gibts nen push_back für chars?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744460</guid><dc:creator><![CDATA[datread0r]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:20:28 GMT]]></title><description><![CDATA[<p>selber casten, das sagt dem compiler, daß es nicht aus versehen ist, sondern pure absicht.</p>
<pre><code class="language-cpp">file_content.push_back (char(c));
</code></pre>
<p>aber wieso ist c überhaupt ein int??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744463</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:20:28 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:35:09 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>aber wieso ist c überhaupt ein int??</p>
</blockquote>
<p>So kenne ich das von C her, einlesen in einen int bis EOF. Vermutlich geht das in C++ anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744468</guid><dc:creator><![CDATA[datread0r]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:39:47 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> Brauche ich hier nen int? Ich meine nein! In C war es nötig, um eine Verwechslung EOF mit 0xFF zu Vermeiden, aber hier prüfe ich ja infile.eof() == false, kann also gleich nen char nehmen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744469</guid><dc:creator><![CDATA[datread0r]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:41:00 GMT]]></title><description><![CDATA[<p>datread0r schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>aber wieso ist c überhaupt ein int??</p>
</blockquote>
<p>So kenne ich das von C her, einlesen in einen int bis EOF. Vermutlich geht das in C++ anders.</p>
</blockquote>
<p>ja. üblich ist wohl eher</p>
<pre><code class="language-cpp">while ( infile.get(ch) ) //identisch mit while(infile.get(ch),infile)
    { 
        if ( char_valid(c) ) 
            file_content.push_back (c);
    }
</code></pre>
<p>vor allem ist es falsch, vor dem get auf eof zu prüfen. eof ist erst dem stream bekannt, nachdem das mist-zeichen gelesen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744470</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:41:24 GMT]]></title><description><![CDATA[<p>Nö, doch nicht:</p>
<pre><code class="language-cpp">char c = infile.get();
</code></pre>
<blockquote>
<p>warning C4244: '=': Konvertierung von 'int' in 'char', möglicher Datenverlust.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1744471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744471</guid><dc:creator><![CDATA[datread0r]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Zeichenweise einlesen - Warnung ignorieren, bzw. verhindern? on Thu, 16 Jul 2009 18:46:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: sorry zu spät gesehen!<br />
Danke, so geht es!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744472</guid><dc:creator><![CDATA[datread0r]]></dc:creator><pubDate>Thu, 16 Jul 2009 18:46:03 GMT</pubDate></item></channel></rss>