<?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[Array lässt sich kein zweites Mal füllen]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich bin kompletter Neuling in Cpp, sowieso auch in diesem Forum. Als Anfangsaufgabe versuche ich gerade eine Art Kalender zu Coden, welcher einfach die Informationen vom Anwender übernimmt und in einer Textdatei speichert. Leider führt das zu einem unerwünschten Nebeneffeckt, welchen ich leider nicht raus bekomme.</p>
<p>Im Prinzip soll der Anwender nur den Text, das Datum und die Uhrzeit eingeben und das Programm speichert alles in einer Textdatei. Danach hat der Benutzer die Wahl einen zweiten Eintrag zu machen. Möchte er dies tun startet meine Schleife.<br />
Es wird wieder nach dem Text gefragt aber direkt zum Datum gesprungen, ehe man die Chance hat einen Text einzugeben.</p>
<p>Wäre nett wenn mir jemand weiterhelfen könne ohne zu hart mit mir ins Gericht zu<br />
gehen, da ich mir sicher bin einige Fehler oder &quot;No-Goes&quot; begangen zu haben.</p>
<p>Hab versucht den Code so übersichtlich und kurz wie möglich zu gestalten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code>int main(int argc, char *argv[])
{
	bool bEndauswahl = true;

	while (bEndauswahl)
	{
	char myArray[81];   	
   	cout &lt;&lt; &quot;Geben Sie die Nachricht fuer Ihren Kalendereintrag ein: &quot;;
   	cin.getline (myArray, 81);
   	myArray[-1] = 0;
   	std::cin.clear();

	string dateline, day, month, year; 

	cout &lt;&lt; &quot;An welchem Tag soll der Termin stattfinden: &quot;;
	getline(cin, dateline);
	istringstream is(dateline);
	getline(is,day,'.'); 
	getline(is,month,'.');
	getline(is,year);

	string timeline, hour, minute;	
	cout &lt;&lt; &quot;Geben Sie die Uhrzeit Ihres Termins an: &quot;;
	getline (cin, timeline);
	istringstream is1(timeline); 
	getline (is1, hour, ':');
	getline (is1, minute);   	

	ifstream FileTest(&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;);
	if(!FileTest)
    {

ofstream myFile (&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;, ios::out); 
   		if (!myFile) 
   		{
      			cout &lt;&lt; &quot;Datei konnte nicht erstellt werden&quot;;
   		}
   		else
		{	
   			myFile &lt;&lt; day &lt;&lt; &quot;.&quot; &lt;&lt; month &lt;&lt; &quot;.&quot; &lt;&lt; year &lt;&lt; &quot;  &quot; &lt;&lt; hour &lt;&lt; &quot;:&quot; &lt;&lt; minute &lt;&lt; &quot;  |  &quot; &lt;&lt; myArray &lt;&lt; endl;
   			myFile.close(); 
		}

	}

	else
	{
	fstream myFile (&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;, 
        ios::out | ios::app);
   	myFile &lt;&lt; day &lt;&lt; &quot;.&quot; &lt;&lt; month &lt;&lt; &quot;.&quot; &lt;&lt; year &lt;&lt; &quot;  &quot; &lt;&lt; hour &lt;&lt; &quot;:&quot; 
        &lt;&lt; minute &lt;&lt; &quot;  |  &quot; &lt;&lt; myArray &lt;&lt; endl;
   	myFile.close();
	}

	cout &lt;&lt; &quot;M\x94 \bchten Sie einen weiteren Eintrag machen? &lt;J/N&gt; &quot;;
	string charAbfrage;
	cin &gt;&gt; charAbfrage;

	if((charAbfrage != &quot;J&quot;) &amp;&amp; (charAbfrage != &quot;j&quot;))
		{
			bEndauswahl = false;	
		}

	}

   // system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/306376/array-lässt-sich-kein-zweites-mal-füllen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 07:36:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306376.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jul 2012 13:31:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 13:31:26 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich bin kompletter Neuling in Cpp, sowieso auch in diesem Forum. Als Anfangsaufgabe versuche ich gerade eine Art Kalender zu Coden, welcher einfach die Informationen vom Anwender übernimmt und in einer Textdatei speichert. Leider führt das zu einem unerwünschten Nebeneffeckt, welchen ich leider nicht raus bekomme.</p>
<p>Im Prinzip soll der Anwender nur den Text, das Datum und die Uhrzeit eingeben und das Programm speichert alles in einer Textdatei. Danach hat der Benutzer die Wahl einen zweiten Eintrag zu machen. Möchte er dies tun startet meine Schleife.<br />
Es wird wieder nach dem Text gefragt aber direkt zum Datum gesprungen, ehe man die Chance hat einen Text einzugeben.</p>
<p>Wäre nett wenn mir jemand weiterhelfen könne ohne zu hart mit mir ins Gericht zu<br />
gehen, da ich mir sicher bin einige Fehler oder &quot;No-Goes&quot; begangen zu haben.</p>
<p>Hab versucht den Code so übersichtlich und kurz wie möglich zu gestalten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code>int main(int argc, char *argv[])
{
	bool bEndauswahl = true;

	while (bEndauswahl)
	{
	char myArray[81];   	
   	cout &lt;&lt; &quot;Geben Sie die Nachricht fuer Ihren Kalendereintrag ein: &quot;;
   	cin.getline (myArray, 81);
   	myArray[-1] = 0;
   	std::cin.clear();

	string dateline, day, month, year; 

	cout &lt;&lt; &quot;An welchem Tag soll der Termin stattfinden: &quot;;
	getline(cin, dateline);
	istringstream is(dateline);
	getline(is,day,'.'); 
	getline(is,month,'.');
	getline(is,year);

	string timeline, hour, minute;	
	cout &lt;&lt; &quot;Geben Sie die Uhrzeit Ihres Termins an: &quot;;
	getline (cin, timeline);
	istringstream is1(timeline); 
	getline (is1, hour, ':');
	getline (is1, minute);   	

	ifstream FileTest(&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;);
	if(!FileTest)
    {

ofstream myFile (&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;, ios::out); 
   		if (!myFile) 
   		{
      			cout &lt;&lt; &quot;Datei konnte nicht erstellt werden&quot;;
   		}
   		else
		{	
   			myFile &lt;&lt; day &lt;&lt; &quot;.&quot; &lt;&lt; month &lt;&lt; &quot;.&quot; &lt;&lt; year &lt;&lt; &quot;  &quot; &lt;&lt; hour &lt;&lt; &quot;:&quot; &lt;&lt; minute &lt;&lt; &quot;  |  &quot; &lt;&lt; myArray &lt;&lt; endl;
   			myFile.close(); 
		}

	}

	else
	{
	fstream myFile (&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;, 
        ios::out | ios::app);
   	myFile &lt;&lt; day &lt;&lt; &quot;.&quot; &lt;&lt; month &lt;&lt; &quot;.&quot; &lt;&lt; year &lt;&lt; &quot;  &quot; &lt;&lt; hour &lt;&lt; &quot;:&quot; 
        &lt;&lt; minute &lt;&lt; &quot;  |  &quot; &lt;&lt; myArray &lt;&lt; endl;
   	myFile.close();
	}

	cout &lt;&lt; &quot;M\x94 \bchten Sie einen weiteren Eintrag machen? &lt;J/N&gt; &quot;;
	string charAbfrage;
	cin &gt;&gt; charAbfrage;

	if((charAbfrage != &quot;J&quot;) &amp;&amp; (charAbfrage != &quot;j&quot;))
		{
			bEndauswahl = false;	
		}

	}

   // system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2235940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235940</guid><dc:creator><![CDATA[Samp]]></dc:creator><pubDate>Thu, 26 Jul 2012 13:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 13:48:13 GMT]]></title><description><![CDATA[<p>was denn für einen fehler?<br />
was erwartest du und was kommt tatsächlich raus?</p>
<p>wieso benutzt du in zeile 7 ein char array aber sonst einen (std::)string ?<br />
wieso nicht da auch std::string?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235941</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 26 Jul 2012 13:48:13 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 13:50:56 GMT]]></title><description><![CDATA[<p>und was genau erwartest du von der Zeile</p>
<pre><code class="language-cpp">myArray[-1] = 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2235942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235942</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 26 Jul 2012 13:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 13:51:49 GMT]]></title><description><![CDATA[<blockquote>
<p>Array lässt sich kein zweites Mal füllen</p>
</blockquote>
<p>Na klar. Es ist ja auch schon voll. xD</p>
<p>*SCNR* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Würde jetzt auch noch gerne eine kompetente Antwort geben, aber muss gerade los. Sorry. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235943</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 26 Jul 2012 13:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 14:00:08 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18806">@Skym0sh0</a><br />
Was ich möchte ist, dass der Benutzer einen zweiten Eintrag machen kann wenn er möchte.</p>
<p>Erste Eingabe sieht so aus:<br />
Text : Beispiel<br />
Datum : Beispiel<br />
Zeit : Beispiel</p>
<p>Nach Auswahl eine neue Eingabe zu machen kommt folgendes:<br />
Test :<br />
Datum : Beispiel<br />
Zeit : Beispiel</p>
<p>Er gibt mir im zweiten Durchlauf keine Chancen, den Text für den Eintrag anzugeben. Er fragt zwar danach, springt dann aber direkt weiter um nach dem Datum zu fragen, ohne eine Eingabe abzuwarten.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/27454">@daddy_felix</a></p>
<p>Hab gelesen das Strings immer mit einer 0 abgeschlossen werden und dies wollte<br />
ich damit machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235947</guid><dc:creator><![CDATA[Samp]]></dc:creator><pubDate>Thu, 26 Jul 2012 14:00:08 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 14:01:18 GMT]]></title><description><![CDATA[<p>Aber -1 ist ja der Index vor dem ersten Index, das ist überhaupt kein gültiger Eintrag. Dachtest Du, das ist dann am Ende?</p>
<p>Also wenn Du oben einfach statt cin.getline(...) ebenfalls getline(cin, ...) nutzt, kannst Du direkt den String angeben. Und std::strings sind eh nullterminiert.</p>
<p>Und möglicherweise löst das auch Dein Überspringproblem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235948</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 26 Jul 2012 14:01:18 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 14:18:43 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22559">@Eisflamme</a> : Ja blöderweise habe ich wirklich gedacht es wäre der letzte Index o.O<br />
Wenn ich ehrlich bin habe ich auch nie infrage gestellt ohne Array zu arbeiten.<br />
Einmal geschrieben war es quasi gesetzt und wurde nicht mehr von mir hinterfragt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Danke schonmal für den Denkanstoß</p>
<p>Aber was bleibt:</p>
<p>Wenn ich die cin.getline Sache z.B. so abändere:</p>
<pre><code>string sText; 
   cout &lt;&lt; &quot;Geben Sie die Nachricht fuer Ihren Kalendereintrag ein: &quot; &lt;&lt; endl;
   getline(cin, sText);
</code></pre>
<p>Bleibt immer noch der selbe Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235954</guid><dc:creator><![CDATA[Samp]]></dc:creator><pubDate>Thu, 26 Jul 2012 14:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 14:27:36 GMT]]></title><description><![CDATA[<p>Samp schrieb:</p>
<blockquote>
<p>Er gibt mir im zweiten Durchlauf keine Chancen, den Text für den Eintrag anzugeben. Er fragt zwar danach, springt dann aber direkt weiter um nach dem Datum zu fragen, ohne eine Eingabe abzuwarten.</p>
</blockquote>
<p>Das tut er deshalb, weil Du in Zeile 57 zwar die Antwort von std::cin liest aber nicht das Ende der Zeile. Letzteres steht noch im Eingabestream und wird nach einer positive Antwort in Zeile 16 als leerer Eintrag gelesen.</p>
<p>Füge zwischen den Zeilen 8 und 9 ein</p>
<pre><code class="language-cpp">cin &gt;&gt; ws;
</code></pre>
<p>ein.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235956</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 26 Jul 2012 14:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 14:37:32 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7393">@Werner</a>:</p>
<p>Super ich danke dir vielmals. Genau das war das Problem und ich hätte<br />
auf ewig an der falschen stelle gesucht.</p>
<p>Wenn du noch kurz Zeit hättest, würde ich gerne wissen was genau durch<br />
cin &gt;&gt; ws; passiert?</p>
<p>ps: Achja bevor ich es vergesse. Großes Lob ans Forum! Schnelle und produktive Antworten sucht man im Netz oft vergebens. Schön das es hier anders war <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235957</guid><dc:creator><![CDATA[Samp]]></dc:creator><pubDate>Thu, 26 Jul 2012 14:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 14:52:30 GMT]]></title><description><![CDATA[<p>Samp schrieb:</p>
<blockquote>
<p>Wenn du noch kurz Zeit hättest, würde ich gerne wissen was genau durch<br />
cin &gt;&gt; ws; passiert?</p>
</blockquote>
<p>Der Ausdruck liest alle <a href="http://de.wikipedia.org/wiki/Leerraum" rel="nofollow">White Space Character</a>. Siehe auch <a href="http://www.cplusplus.com/reference/iostream/manipulators/ws/" rel="nofollow">std::ws</a>. Falls dann noch Fragen bleiben, bitte melden.</p>
<p>Samp schrieb:</p>
<blockquote>
<p>ps: Achja bevor ich es vergesse. Großes Lob ans Forum! Schnelle und produktive Antworten sucht man im Netz oft vergebens. Schön das es hier anders war <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
</blockquote>
<p>ja das freut uns - also Willkommen im C++-Forum!</p>
<p>Ansonsten kannst Du noch die Zeilen 29 bis 53 durch</p>
<pre><code class="language-cpp">{
    ofstream myFile (&quot;L:/Thomas/C++/Datapool/Kalender.txt&quot;, ios::app); // ios::out ist unnötig, ein ofstream hat immer ios::out
    myFile &lt;&lt; day &lt;&lt; &quot;.&quot; &lt;&lt; month &lt;&lt; &quot;.&quot; &lt;&lt; year &lt;&lt; &quot;  &quot; &lt;&lt; hour &lt;&lt; &quot;:&quot;
        &lt;&lt; minute &lt;&lt; &quot;  |  &quot; &lt;&lt; myArray &lt;&lt; endl;
    }
</code></pre>
<p>ersetzen.</p>
<p>das tut genau das gleiche, wie der ganze Rest.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235966</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 26 Jul 2012 14:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 22:29:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">system(&quot;PAUSE&quot;)
</code></pre>
<p>müßtest Du Dir überlegen, ob das sinnvoll ist, da das ausschließlich unter Windows<br />
funktioniert.<br />
Eine Alternative wäre evtl.:</p>
<pre><code class="language-cpp">cin.clear();
cin.ignore(256, '\n'); 
cout &lt;&lt; &quot;Weiter mit Return...&quot; &lt;&lt; endl; 
cin.get();
</code></pre>
<p>Eine andere Frage wäre, ob das verwendete c-array sinnvoll ist.<br />
Weiß gerade nicht, ob die Anzahl der zu speichernden Werte von vornherein fix ist. Falls nicht, wäre ein std::vector besser, Infos kannst Du unter<br />
<a href="http://www.cplusplus.com/reference/stl/vector/push_back/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/push_back/</a> nachlesen.</p>
<p>Und es wäre schön, wenn Du die c++-tags zum posten von Code benutzt, das ist<br />
dann noch lesbarer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236096</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Thu, 26 Jul 2012 22:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to Array lässt sich kein zweites Mal füllen on Thu, 26 Jul 2012 23:48:29 GMT]]></title><description><![CDATA[<p>redrew schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p><a href="http://www.c-plusplus.net/forum/viewtopic.php?t=111042" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=111042</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236108</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 26 Jul 2012 23:48:29 GMT</pubDate></item></channel></rss>