<?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[Stringbearbeitung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes erstellt:</p>
<p><a href="//strings.h">//strings.h</a><br />
#include&lt;iostream&gt;<br />
#include&lt;string&gt;</p>
<p>using namespace std;</p>
<p>class strings<br />
{<br />
private:<br />
string eingabe;</p>
<p>public:<br />
void setstring();<br />
void getstring();<br />
int string_laenge();<br />
void erase_string();</p>
<p>};</p>
<p>//strings_m.cpp<br />
#include&quot;strings.h&quot;</p>
<p>void main()<br />
{<br />
bool dummy=true;<br />
int str_laenge;</p>
<p>strings String1;</p>
<p>while(dummy==true)<br />
{<br />
String1.setstring();<br />
String1.getstring();<br />
str_laenge=String1.string_laenge();<br />
String1.erase_string();<br />
cout&lt;&lt;&quot;\n\nErneut ausfuehren?&quot;&lt;&lt;endl;<br />
cin&gt;&gt;dummy;<br />
if(dummy==1)<br />
dummy=true;<br />
else<br />
dummy=false;<br />
}<br />
};</p>
<p><a href="//strings.cpp">//strings.cpp</a><br />
#include&quot;strings.h&quot;</p>
<p>void strings::setstring()<br />
{<br />
cout&lt;&lt;&quot;Geben Sie beliebige Zeichen ein:&quot;&lt;&lt;endl;<br />
getline(cin, eingabe);<br />
};</p>
<p>void strings::getstring()<br />
{<br />
cout&lt;&lt;&quot;Ihr eingegebener String enthaelt folgende Zeichen:\n&quot;&lt;&lt;eingabe;<br />
};</p>
<p>int strings::string_laenge()<br />
{<br />
int str_laenge;<br />
cout&lt;&lt;&quot;\nAnzahl der Zeichen:&quot;&lt;&lt; eingabe.length();<br />
str_laenge=eingabe.length();<br />
return str_laenge;<br />
}</p>
<p>void strings::erase_string()<br />
{<br />
eingabe=eingabe.erase();<br />
};</p>
<p>Beim ersten Durchlauf läuft noch alles wie es soll...<br />
das problem ist jetzt das, sobald ich den dummy wieder auf 1 setze, zwar das prgm wohl ausgeführt wird... getline aber nicht.</p>
<p>wär super wenn mir jmd meinen fehler zeigen könnte!</p>
<p>danke schonmal im voraus <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/topic/304315/stringbearbeitung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 21:02:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304315.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Jun 2012 17:32:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 17:32:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes erstellt:</p>
<p><a href="//strings.h">//strings.h</a><br />
#include&lt;iostream&gt;<br />
#include&lt;string&gt;</p>
<p>using namespace std;</p>
<p>class strings<br />
{<br />
private:<br />
string eingabe;</p>
<p>public:<br />
void setstring();<br />
void getstring();<br />
int string_laenge();<br />
void erase_string();</p>
<p>};</p>
<p>//strings_m.cpp<br />
#include&quot;strings.h&quot;</p>
<p>void main()<br />
{<br />
bool dummy=true;<br />
int str_laenge;</p>
<p>strings String1;</p>
<p>while(dummy==true)<br />
{<br />
String1.setstring();<br />
String1.getstring();<br />
str_laenge=String1.string_laenge();<br />
String1.erase_string();<br />
cout&lt;&lt;&quot;\n\nErneut ausfuehren?&quot;&lt;&lt;endl;<br />
cin&gt;&gt;dummy;<br />
if(dummy==1)<br />
dummy=true;<br />
else<br />
dummy=false;<br />
}<br />
};</p>
<p><a href="//strings.cpp">//strings.cpp</a><br />
#include&quot;strings.h&quot;</p>
<p>void strings::setstring()<br />
{<br />
cout&lt;&lt;&quot;Geben Sie beliebige Zeichen ein:&quot;&lt;&lt;endl;<br />
getline(cin, eingabe);<br />
};</p>
<p>void strings::getstring()<br />
{<br />
cout&lt;&lt;&quot;Ihr eingegebener String enthaelt folgende Zeichen:\n&quot;&lt;&lt;eingabe;<br />
};</p>
<p>int strings::string_laenge()<br />
{<br />
int str_laenge;<br />
cout&lt;&lt;&quot;\nAnzahl der Zeichen:&quot;&lt;&lt; eingabe.length();<br />
str_laenge=eingabe.length();<br />
return str_laenge;<br />
}</p>
<p>void strings::erase_string()<br />
{<br />
eingabe=eingabe.erase();<br />
};</p>
<p>Beim ersten Durchlauf läuft noch alles wie es soll...<br />
das problem ist jetzt das, sobald ich den dummy wieder auf 1 setze, zwar das prgm wohl ausgeführt wird... getline aber nicht.</p>
<p>wär super wenn mir jmd meinen fehler zeigen könnte!</p>
<p>danke schonmal im voraus <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/2218926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218926</guid><dc:creator><![CDATA[fcb_fh1]]></dc:creator><pubDate>Sun, 03 Jun 2012 17:32:56 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 17:50:13 GMT]]></title><description><![CDATA[<p>Hallo fcb_fh1,</p>
<p>Willkommen im C++-Forum.</p>
<p>fcb_fh1 schrieb:</p>
<blockquote>
<p>ich habe folgendes erstellt:</p>
<pre><code class="language-cpp">//strings.h
#include&lt;iostream&gt;
#include&lt;string&gt;

using namespace std;

class strings
{
private:
	string eingabe;

public:
	void setstring();
	void getstring();
	int string_laenge();
	void erase_string();

};

//strings_m.cpp
#include&quot;strings.h&quot;

void main()
{
	bool dummy=true;
	int str_laenge;

	strings String1;

	while(dummy==true)
	{
	String1.setstring();
	String1.getstring();
	str_laenge=String1.string_laenge();
	String1.erase_string();
	cout&lt;&lt;&quot;\n\nErneut ausfuehren?&quot;&lt;&lt;endl;
	cin&gt;&gt;dummy;
	if(dummy==1)
		dummy=true;
	else
		dummy=false;
	}
};

//strings.cpp
#include&quot;strings.h&quot;

void strings::setstring()
{
	cout&lt;&lt;&quot;Geben Sie beliebige Zeichen ein:&quot;&lt;&lt;endl;
	getline(cin, eingabe);
};

void strings::getstring()
{
	cout&lt;&lt;&quot;Ihr eingegebener String enthaelt folgende Zeichen:\n&quot;&lt;&lt;eingabe;
};

int strings::string_laenge()
{
	int str_laenge;
	cout&lt;&lt;&quot;\nAnzahl der Zeichen:&quot;&lt;&lt; eingabe.length();	
	str_laenge=eingabe.length();
	return str_laenge;
}

void strings::erase_string()
{
	eingabe=eingabe.erase();
};
</code></pre>
</blockquote>
<p>Dass Dein Programm nicht so arbeitet, wie Du es erwartest, liegt an der Eingabe in Zeile 38. Dort gibst Du eine Zahl ein und drückst die 'Enter'-Taste, welche ein Zeilenende in den Eingabebuffer schreibt. Gelesen wird in dem Programm nur die Zahl, das Zeilenende bleibt stehen und wird später von getline als Leerstring eingelesen.<br />
Also musst Du nach der Eingabe alles inklusive dem <a href="http://de.wikipedia.org/wiki/Linefeed" rel="nofollow">LF</a> (Zeilenende) aus dem Eingabebuffer entfernen.<br />
Ändere Zeile 38 nach</p>
<pre><code class="language-cpp">(cin&gt;&gt;dummy).ignore(999,'\n');  // '\n' == LF
</code></pre>
<p>dann klappt's.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218931</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 03 Jun 2012 17:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 17:53:34 GMT]]></title><description><![CDATA[<p>[EDIT]: Zu langsam</p>
<p>PS: main() gibt einen Integer zurück.</p>
<p>gruß<br />
syntax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218932</guid><dc:creator><![CDATA[Syntax_error]]></dc:creator><pubDate>Sun, 03 Jun 2012 17:53:34 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 18:47:34 GMT]]></title><description><![CDATA[<p>Vielen Dank für die schnelle Antwort Werner.<br />
So läuft das Programm!</p>
<p>Mir ist jetzt klar, was in dem bisherigen einfachen &quot;cin&quot; falsch war, aber was macht jetzt genau der &quot;ignore(999,'\n')&quot;-Befehl?</p>
<p>Ich verstehe das jetzt so, dass die Zeichen eingelesen werden, aber alles was ab der '\n'-Eingabe folgt &quot;ignoriert&quot; wird.</p>
<p>Mir ist der Aufbau des &quot;ignore&quot;-Befehls aber noch nicht vollends klar.<br />
Was bewirkt z.B. die 999?</p>
<p>@syntax: Danke für deinen Kommentar. Ich hab das so von meinem Prof. beigebracht bekommen. Der Aufbau mit &quot;int main(void)&quot; ist mir mittlerweile auch schon öfter untergekommen.<br />
Wieso sollte man das denn besser so schreiben? Ist das &quot;void main()&quot; nicht mehr aktuell?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218950</guid><dc:creator><![CDATA[fcb_fh1]]></dc:creator><pubDate>Sun, 03 Jun 2012 18:47:34 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 18:58:12 GMT]]></title><description><![CDATA[<p>Der Standard sagt: Main muss auf jeden Fall int zurückgeben. Das war schon immer so und wird auch immer so bleiben. Was die Parameter angeht, müssen die folgenden beiden Signaturen funktionieren:</p>
<pre><code class="language-cpp">int main()
int main(int argc, char** argv)
</code></pre>
<p>Weitere Signaturen dürfen vom Compiler unterstützt werden, der Standard spricht sich darüber aber nicht weiter aus.</p>
<pre><code class="language-cpp">int main(void)
</code></pre>
<p>ist äquivalent zu</p>
<pre><code class="language-cpp">int main()
</code></pre>
<p>wirkt aber wie von einem C-Programmierer kommend, der sich weigert, ordentlich C++ zu lernen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218953</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 03 Jun 2012 18:58:12 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 19:03:42 GMT]]></title><description><![CDATA[<p>fcb_fh1 schrieb:</p>
<blockquote>
<p>aber was macht jetzt genau der &quot;ignore(999,'\n')&quot;-Befehl?</p>
</blockquote>
<p><code>ignore</code> ignoriert (ignorieren = Zeichen lesen und dann verwerfen) im Puffer stehende Zeichen. In diesem Fall werden entweder 999 Zeichen ignoriert oder es werden solange Zeichen ignoriert, bis man auf das '\n'-Zeichen stößt (das '\n'-Zeichen wird dann ebenfalls ignoriert).</p>
<p>fcb_fh1 schrieb:</p>
<blockquote>
<p>Ist das &quot;void main()&quot; nicht mehr aktuell?</p>
</blockquote>
<p><code>void main</code> war, ist und wird immer falsch sein, da es weder der C++-Standard noch dem C-Standard erlaubt. Dass es manche Compiler schlucken macht es auch nicht richtiger, sondern ist eher ein Hinweis für dich, dass der Compiler ewig alt ist und aus Zeiten stammt, in denen noch nicht so viel Wert auf Standardkonformität gelegt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218954</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 03 Jun 2012 19:03:42 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Sun, 03 Jun 2012 19:54:55 GMT]]></title><description><![CDATA[<p>Ich habe das nur mit void main von meinem Prof so beigebracht bekommen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Aber danke für den Hinweis, dann werde ich ab jetzt mit int main() arbeiten.</p>
<p>Stimmt übrigens Kellerautomat... ich habe vorher in C programmiert und jetzt mit C++ begonnen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Danke vielmals Gugelmoser, jetzt weiß ich vollends Bescheid! <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/2218975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218975</guid><dc:creator><![CDATA[fcb_fh1]]></dc:creator><pubDate>Sun, 03 Jun 2012 19:54:55 GMT</pubDate></item><item><title><![CDATA[Reply to Stringbearbeitung on Mon, 04 Jun 2012 06:28:46 GMT]]></title><description><![CDATA[<p>fcb_fh1 schrieb:</p>
<blockquote>
<p>Ich habe das nur mit void main von meinem Prof so beigebracht bekommen.</p>
</blockquote>
<p>Auch Profs sind nicht unfehlbar. Die Erfahrung zeigt vielmehr, dass gerade &quot;erfahrene&quot; Profs sehr häufig bei irgendwelchem Prä-Standard-Halbwissen anfang der Neunziger stehengeblieben sind. &quot;void main&quot; ist ein erster Hinweis, dass dein Prof zu dieser Spezies gehören könnte. Leider belibt einem da nichts anderes übrig, als sich ein aktuelles gutes C++ Buch zu besorgen (eine Liste findest du in der FAQ) und alles zu hinterfragen und abzugleichen, was der Prof als Tatsachen hinstellt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219042</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 04 Jun 2012 06:28:46 GMT</pubDate></item></channel></rss>