<?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[Nur Buchstaben und Zeilenumbrüche aus Datei]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine txt-Datei und will sie als std::string einlesen. Außer Zeilenumbrüchen und Buchstaben soll alles ignoriert werden. Die Großbuchstaben sollen in kleine gewandelt werden.</p>
<p>Code:</p>
<pre><code class="language-cpp">extern const char* const TEXT_FILENAME = &quot;irgendwas.txt&quot;;

inline bool isumlaut(char c)
{
	return (c == 'ä' || c == 'ö' || c == 'ü' || c == 'Ä' || c == 'Ö' || c == 'Ü' || c == 'ß');
}

std::string load_and_prepare_text()
{
	std::string result;
	std::ifstream infile(TEXT_FILENAME);
	char read_char;
	while (infile.get(read_char))
	{
		if (isumlaut(read_char) || isalpha(read_char) || read_char == '\n')
			result.push_back(tolower(read_char));
	}
	return result;
}
</code></pre>
<p>Ich erhalte einen Laufzeitfehler in isctype.c, Zeile:<br />
_ASSERTE((unsigned)(c + 1) &lt;= 256);</p>
<p>Der Debugger sagt, c bzw. read_char hätte einen negativen Wert. Betroffen davon sind die Umlaute.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293771/nur-buchstaben-und-zeilenumbrüche-aus-datei</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 05:44:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293771.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Oct 2011 14:16:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nur Buchstaben und Zeilenumbrüche aus Datei on Mon, 10 Oct 2011 14:16:45 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine txt-Datei und will sie als std::string einlesen. Außer Zeilenumbrüchen und Buchstaben soll alles ignoriert werden. Die Großbuchstaben sollen in kleine gewandelt werden.</p>
<p>Code:</p>
<pre><code class="language-cpp">extern const char* const TEXT_FILENAME = &quot;irgendwas.txt&quot;;

inline bool isumlaut(char c)
{
	return (c == 'ä' || c == 'ö' || c == 'ü' || c == 'Ä' || c == 'Ö' || c == 'Ü' || c == 'ß');
}

std::string load_and_prepare_text()
{
	std::string result;
	std::ifstream infile(TEXT_FILENAME);
	char read_char;
	while (infile.get(read_char))
	{
		if (isumlaut(read_char) || isalpha(read_char) || read_char == '\n')
			result.push_back(tolower(read_char));
	}
	return result;
}
</code></pre>
<p>Ich erhalte einen Laufzeitfehler in isctype.c, Zeile:<br />
_ASSERTE((unsigned)(c + 1) &lt;= 256);</p>
<p>Der Debugger sagt, c bzw. read_char hätte einen negativen Wert. Betroffen davon sind die Umlaute.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129594</guid><dc:creator><![CDATA[Wurstinator]]></dc:creator><pubDate>Mon, 10 Oct 2011 14:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Nur Buchstaben und Zeilenumbrüche aus Datei on Mon, 10 Oct 2011 14:23:03 GMT]]></title><description><![CDATA[<p>Falls du ASCII garantieren kannst, schreibe dir halt deine eigene tolower Funktion. (Du musst das sechste Bit setzen. Also read_char &amp; 0x20)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129596</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 10 Oct 2011 14:23:03 GMT</pubDate></item><item><title><![CDATA[Reply to Nur Buchstaben und Zeilenumbrüche aus Datei on Mon, 10 Oct 2011 14:54:22 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Falls du ASCII garantieren kannst, schreibe dir halt deine eigene tolower Funktion. (Du musst das sechste Bit setzen. Also read_char &amp; 0x20)</p>
</blockquote>
<p>Wohl eher | als &amp;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129610</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Mon, 10 Oct 2011 14:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to Nur Buchstaben und Zeilenumbrüche aus Datei on Mon, 10 Oct 2011 15:24:05 GMT]]></title><description><![CDATA[<p>Das Problem ist nicht die tolower-Funktion, sondern isalpha. Wenn ich read_char direkt einfüge, ohne tolower, tritt der Fehler auf. Wenn ich die isalpha-Abfrage entferne, nicht mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129620</guid><dc:creator><![CDATA[Wurstinator]]></dc:creator><pubDate>Mon, 10 Oct 2011 15:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to Nur Buchstaben und Zeilenumbrüche aus Datei on Mon, 10 Oct 2011 15:35:26 GMT]]></title><description><![CDATA[<p>Wurstinator schrieb:</p>
<blockquote>
<p>Das Problem ist nicht die tolower-Funktion, sondern isalpha. Wenn ich read_char direkt einfüge, ohne tolower, tritt der Fehler auf. Wenn ich die isalpha-Abfrage entferne, nicht mehr.</p>
</blockquote>
<p>stimmt - und wenn Du dem isalpha auch sagst, dass Du deutsche Buchstaben hast, dann funktioniert es auch. Etwa so:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;locale&gt; // std::isalpha

std::string load_and_prepare_text()
{
    std::string result;
    std::ifstream infile(&quot;Input.txt&quot;);
    std::locale german(&quot;german&quot;); // Text 'german' ist von der Entwicklungsumgebung abhängig
    for( char read_char; infile.get(read_char); )
    {
        if (isalpha(read_char, german) || read_char == '\n')
            result.push_back(tolower(read_char));
    }
    return result;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129623</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 10 Oct 2011 15:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Nur Buchstaben und Zeilenumbrüche aus Datei on Mon, 10 Oct 2011 20:19:59 GMT]]></title><description><![CDATA[<p>Ja, funktioniert.<br />
Danke sehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2129732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2129732</guid><dc:creator><![CDATA[Wurstinator]]></dc:creator><pubDate>Mon, 10 Oct 2011 20:19:59 GMT</pubDate></item></channel></rss>