<?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[Vokale entfernen]]></title><description><![CDATA[<p>Schreiben ein Programm das alle Vokale aus einer Datei entfernen soll. Dabei habe ich zwei Probleme, erstens der Compiler sagt das bei line[i]=''; eine leere Zeichenkonstante ist, und zweitens wieso kann stringstream nicht aus line lesen.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Geben Sie bitte den Namen der Eingabedatei ein:&quot;;
	string name;
	cin&gt;&gt;name;
	ifstream istr(name.c_str(),ios_base::in);
	if(!istr) cout &lt;&lt; &quot;Fehler beim Oeffnen der Eingabedatei&quot; &lt;&lt; endl;

	string line;
	getline(cin,line);
	for (int i = 0; i&lt;line.size();++i)      
		switch(line[i]){
		case'E':case'e':case'A':case'a':case'i':case'I':
					line[i]= '';  // hier der Fehler
    }

	stringstream ss(line);   // wieso ließt stringstream nicht aus line
	vector&lt;string&gt; vs;
	string word;
	while(ss&gt;&gt;word)
		vs.push_back(word);
	for (int i = 0;i&lt;vs.size();++i)
	cout &lt;&lt; vs[i] &lt;&lt; endl;

	keep_window_open();
    return 0;
</code></pre>
<p>Die Textdatei:</p>
<pre><code>Es war einmal!
</code></pre>
<p>Die Ausgabe sollte das sein:</p>
<pre><code>s wr nml!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/288108/vokale-entfernen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 03:16:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288108.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Jun 2011 11:59:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 11:59:22 GMT]]></title><description><![CDATA[<p>Schreiben ein Programm das alle Vokale aus einer Datei entfernen soll. Dabei habe ich zwei Probleme, erstens der Compiler sagt das bei line[i]=''; eine leere Zeichenkonstante ist, und zweitens wieso kann stringstream nicht aus line lesen.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Geben Sie bitte den Namen der Eingabedatei ein:&quot;;
	string name;
	cin&gt;&gt;name;
	ifstream istr(name.c_str(),ios_base::in);
	if(!istr) cout &lt;&lt; &quot;Fehler beim Oeffnen der Eingabedatei&quot; &lt;&lt; endl;

	string line;
	getline(cin,line);
	for (int i = 0; i&lt;line.size();++i)      
		switch(line[i]){
		case'E':case'e':case'A':case'a':case'i':case'I':
					line[i]= '';  // hier der Fehler
    }

	stringstream ss(line);   // wieso ließt stringstream nicht aus line
	vector&lt;string&gt; vs;
	string word;
	while(ss&gt;&gt;word)
		vs.push_back(word);
	for (int i = 0;i&lt;vs.size();++i)
	cout &lt;&lt; vs[i] &lt;&lt; endl;

	keep_window_open();
    return 0;
</code></pre>
<p>Die Textdatei:</p>
<pre><code>Es war einmal!
</code></pre>
<p>Die Ausgabe sollte das sein:</p>
<pre><code>s wr nml!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076294</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Fri, 10 Jun 2011 11:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:18:00 GMT]]></title><description><![CDATA[<p>Ohne deinen Code allzu sehr umzubasteln, so sollte es gehen:</p>
<pre><code class="language-cpp">line.erase(line.begin()+i);
</code></pre>
<p>EDIT:<br />
Ach ja, und mit dem stringstream... hm, probier doch mal so:</p>
<pre><code class="language-cpp">stringstream ss;
ss &lt;&lt; line;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076307</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:30:58 GMT]]></title><description><![CDATA[<p>Leider ist im vector nichts. Als Ausgabe habe ich eine 0.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Geben Sie bitte den Namen der Eingabedatei ein:&quot;;
	string name;
	cin&gt;&gt;name;
	ifstream istr(name.c_str(),ios_base::in);
	if(!istr) cout &lt;&lt; &quot;Fehler beim Oeffnen der Eingabedatei&quot; &lt;&lt; endl;

	string line;
	getline(cin,line);
	for (int i = 0; i&lt;line.size();++i)      
		switch(line[i]){
		case'E':case'e':case'A':case'a':case'i':case'I':
	line.erase(line.begin()+i); 
	}

	stringstream ss;
	ss &lt;&lt; line;
	vector&lt;string&gt; vs;
	string word;
	while(ss&gt;&gt;word)
		vs.push_back(word);
	for (int i = 0;i&lt;vs.size();++i)
	cout &lt;&lt; vs[i] &lt;&lt; endl;
    cout &lt;&lt; vs.size() &lt;&lt; endl; // zum testen ob was im vector drin ist	

	keep_window_open();
    return 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076323</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:30:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:28:44 GMT]]></title><description><![CDATA[<p>winux schrieb:</p>
<blockquote>
<p>Leider geht es nicht.</p>
</blockquote>
<p>&quot;Geht nicht&quot; ist keine vernünftige Fehlerbeschreibung. Was genau geht nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076325</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:33:43 GMT]]></title><description><![CDATA[<p>Kein Wert im vector. Als Ausgabe bekomme ich eine 0.</p>
<p>EDIT: mit dieser Zeile habe ich 1 Wert im vector:</p>
<pre><code class="language-cpp">vs.push_back(line);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076328</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:33:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:34:46 GMT]]></title><description><![CDATA[<p>Du willst doch aus einer Datei alle Zeilen verarbeiten, richtig? Wieso gibst du beim getline dann cin an? Da müsste istr rein. Dann kriegst du schon mal die erste Zeile der Datei (wenn sie geöffnet werden konnte).</p>
<p>Btw, nutze den Debugger! Gehe Zeile für Zeile zur Laufzeit durch das Programm, dann findest du auch schneller (bzw. überhaupt) Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076333</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:38:40 GMT]]></title><description><![CDATA[<p>Du hast recht, da war der Fehler. Jetzt wird auch eingelesen, doch bei der Ausgabe gibt es noch einen kleinen Fehler, jedes Wort wird in einen eigene Zeile Ausgaben:</p>
<pre><code>s 
wr 
nml!
</code></pre>
<p>Aber ich will das es so Ausgeben wird:</p>
<pre><code>s wr nml!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076340</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:46:11 GMT]]></title><description><![CDATA[<p>Dann mach eben kein endl nach der Ausgabe. Und stattdessen ein Leerzeichen.</p>
<p>Zum Stringstream: Das war am Anfang schon in Ordnung so, deinen eigentlichen Fehler kennst du ja nun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076348</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:47:08 GMT]]></title><description><![CDATA[<p>winux schrieb:</p>
<blockquote>
<p>Du hast recht, da war der Fehler. Jetzt wird auch eingelesen, doch bei der Ausgabe gibt es noch einen kleinen Fehler, jedes Wort wird in einen eigene Zeile Ausgaben:</p>
<pre><code>s 
wr 
nml!
</code></pre>
<p>Aber ich will das es so Ausgeben wird:</p>
<pre><code>s wr nml!
</code></pre>
</blockquote>
<p>Also erstens dürfte das nicht ganz so funktionieren, wie du willst. Sobald einmal erase durchgeführt wird, rückt ja das folgende Zeichen um eins nach links, i wird um eins erhöht, und du überspringst ein Zeichen. Bei Sätzen mit 2 aufeinander folgenden Vokalen sollte es dir auffallen. Einer bleibt dann übrig. Mach es lieber in etwa so:</p>
<pre><code class="language-cpp">int i=line.find_first_of(&quot;aeiouAEIOU&quot;);
	while(i!=std::string::npos) {
		line.erase(line.begin()+i);
		i=line.find_first_of(&quot;aeiouAEIOU&quot;);
	}
</code></pre>
<p>Und zum Zeilenumbruch: den hast du doch selbst da 'reinprogrammiert. Nimm ihn wieder raus! Kann es sein, dass du dir das Programm zusammenkopiert hast? Tipp: &quot;endl&quot; ist der Zeilenumbruch, den du nach jedem Wort ausgibst. Wenn du nach der Ausgabe nichts weiter mit den einzelnen Wörtern machen willst, kannst du dir auch den vector sparen. Einfach so ausgeben und den ganzen überflüssigen Quatsch 'rausnehmen:</p>
<pre><code class="language-cpp">cout &lt;&lt; line &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076351</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to Vokale entfernen on Fri, 10 Jun 2011 12:51:48 GMT]]></title><description><![CDATA[<p>Danke für deine Hilfe und für den Tipp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076356</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Fri, 10 Jun 2011 12:51:48 GMT</pubDate></item></channel></rss>