<?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[Ausgabe eines Struct-Arrays funzt net]]></title><description><![CDATA[<p>Hi,<br />
habe ein Prog geschrieben, in der Funktionen verwendet werden. Man kann 3 Schueler anlegen, anzeigen und bearbeiten.<br />
Lege ich einen Schueler an, und gehe anschließend auf anzeigen, bekomme ich aber nur lehre Daten.<br />
Ich nehme an, dass bei mir in der Ausgabe-Funktiion ein Fehler ist. Aber wo???</p>
<pre><code class="language-csharp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

void DatenNeu();
void DatenAnsehen();
void DatenBearbeiten();

struct T_Schueler
	{	string sVorname;
		string sName;
		int iJahrgangsstufe;
		int iAlter;
	};
	T_Schueler Schuelerdaten[3];

int main()
{	char cAuswahl;

	for (int i=0; i&lt;3; i++)
	{	Schuelerdaten[i].sVorname=&quot;&quot;;
		Schuelerdaten[i].sName=&quot;&quot;;
		Schuelerdaten[i].iJahrgangsstufe=0;
		Schuelerdaten[i].iAlter=0;
	}

    do
	{	system(&quot;cls&quot;);
		cout &lt;&lt; &quot;\tSchuelerdaten&quot;;
		cout &lt;&lt; &quot;\n\t~~~~~~~~~~~~~&quot;;

		cout &lt;&lt; &quot;\n\n1 --&gt; Daten anlegen&quot;;
		cout &lt;&lt; &quot;\n2 --&gt; Daten ansehen&quot;;
		cout &lt;&lt; &quot;\n3 --&gt; Daten bearbeiten&quot;;
		cout &lt;&lt; &quot;\n\n0 --&gt; beenden\n\n&quot;;

		cout &lt;&lt; &quot;Ihre Auswahl:\t&quot;;
		cin &gt;&gt; cAuswahl;

		switch (cAuswahl)
		{	case '1':
				DatenNeu();
				break;

			case '2':
				DatenAnsehen();
				break;

			case '3':
				DatenBearbeiten();
				break;
		}
	}
	while(cAuswahl!='0');

	return 0;
}

//DatenNeu-----------------------------------------------------------------------------
void DatenNeu()
{	char cAuswahl;
	char cUeberschreiben;

	system(&quot;cls&quot;);

	do
	{	cout &lt;&lt; &quot;Welchen Datensatz wollen Sie anlegen? (1-3)\t&quot;;
		cin &gt;&gt; cAuswahl;
		if (Schuelerdaten[cAuswahl-1].sVorname!=&quot;&quot;)
		{	cout &lt;&lt; &quot;Datensatz ist nicht leer. Ueberschreiben (j/n)?\t&quot;;
			cin &gt;&gt; cUeberschreiben;
		}
		else
		{	cUeberschreiben='j';
		}
			if (cUeberschreiben == 'j')
			{	cout &lt;&lt; &quot;\n\nVorname:\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].sVorname;
				cout &lt;&lt; &quot;Name:\t\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].sName;
				cout &lt;&lt; &quot;Jahrgangsstufe:\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].iJahrgangsstufe;
				cout &lt;&lt; &quot;Alter:\t\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].iAlter;
			}

	}
	while (cUeberschreiben != 'j');

}
//DatenAnsehen-------------------------------------------------------------------------
void DatenAnsehen()
{	system(&quot;cls&quot;);
	for (int i=0; i&lt;3; i++)
	{	cout &lt;&lt; &quot;Schueler &quot; &lt;&lt; (i+1) &lt;&lt; &quot;:&quot;;
		cout &lt;&lt; &quot;\n\tName:\t\t&quot; &lt;&lt; Schuelerdaten[i].sName;
		cout &lt;&lt; &quot;\n\tVorname:\t&quot; &lt;&lt; Schuelerdaten[i].sVorname;
		cout &lt;&lt; &quot;\n\tJahrgangsstufe:\t&quot; &lt;&lt; Schuelerdaten[i].iJahrgangsstufe;
		cout &lt;&lt; &quot;\n\tAlter:\t\t&quot; &lt;&lt; Schuelerdaten[i].iAlter;
		cout &lt;&lt; &quot;\n\n&quot;;
	}
	getchar();
	getchar();
}

//DatenBearbeiten----------------------------------------------------------------------
void DatenBearbeiten()
{	char cWahl;
	system(&quot;cls&quot;);
	cout &lt;&lt; &quot;Welchen Datensatz wollen Sie aendern?(1-3)\t&quot;;
	cin &gt;&gt; cWahl;
	cout &lt;&lt; &quot;\n\nVorname:\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].sVorname;
	cout &lt;&lt; &quot;Name:\t\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].sName;
	cout &lt;&lt; &quot;Jahrgangsstufe:\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].iJahrgangsstufe;
	cout &lt;&lt; &quot;Alter:\t\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].iAlter;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/133341/ausgabe-eines-struct-arrays-funzt-net</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 20:33:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133341.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jan 2006 06:40:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 06:40:27 GMT]]></title><description><![CDATA[<p>Hi,<br />
habe ein Prog geschrieben, in der Funktionen verwendet werden. Man kann 3 Schueler anlegen, anzeigen und bearbeiten.<br />
Lege ich einen Schueler an, und gehe anschließend auf anzeigen, bekomme ich aber nur lehre Daten.<br />
Ich nehme an, dass bei mir in der Ausgabe-Funktiion ein Fehler ist. Aber wo???</p>
<pre><code class="language-csharp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

void DatenNeu();
void DatenAnsehen();
void DatenBearbeiten();

struct T_Schueler
	{	string sVorname;
		string sName;
		int iJahrgangsstufe;
		int iAlter;
	};
	T_Schueler Schuelerdaten[3];

int main()
{	char cAuswahl;

	for (int i=0; i&lt;3; i++)
	{	Schuelerdaten[i].sVorname=&quot;&quot;;
		Schuelerdaten[i].sName=&quot;&quot;;
		Schuelerdaten[i].iJahrgangsstufe=0;
		Schuelerdaten[i].iAlter=0;
	}

    do
	{	system(&quot;cls&quot;);
		cout &lt;&lt; &quot;\tSchuelerdaten&quot;;
		cout &lt;&lt; &quot;\n\t~~~~~~~~~~~~~&quot;;

		cout &lt;&lt; &quot;\n\n1 --&gt; Daten anlegen&quot;;
		cout &lt;&lt; &quot;\n2 --&gt; Daten ansehen&quot;;
		cout &lt;&lt; &quot;\n3 --&gt; Daten bearbeiten&quot;;
		cout &lt;&lt; &quot;\n\n0 --&gt; beenden\n\n&quot;;

		cout &lt;&lt; &quot;Ihre Auswahl:\t&quot;;
		cin &gt;&gt; cAuswahl;

		switch (cAuswahl)
		{	case '1':
				DatenNeu();
				break;

			case '2':
				DatenAnsehen();
				break;

			case '3':
				DatenBearbeiten();
				break;
		}
	}
	while(cAuswahl!='0');

	return 0;
}

//DatenNeu-----------------------------------------------------------------------------
void DatenNeu()
{	char cAuswahl;
	char cUeberschreiben;

	system(&quot;cls&quot;);

	do
	{	cout &lt;&lt; &quot;Welchen Datensatz wollen Sie anlegen? (1-3)\t&quot;;
		cin &gt;&gt; cAuswahl;
		if (Schuelerdaten[cAuswahl-1].sVorname!=&quot;&quot;)
		{	cout &lt;&lt; &quot;Datensatz ist nicht leer. Ueberschreiben (j/n)?\t&quot;;
			cin &gt;&gt; cUeberschreiben;
		}
		else
		{	cUeberschreiben='j';
		}
			if (cUeberschreiben == 'j')
			{	cout &lt;&lt; &quot;\n\nVorname:\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].sVorname;
				cout &lt;&lt; &quot;Name:\t\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].sName;
				cout &lt;&lt; &quot;Jahrgangsstufe:\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].iJahrgangsstufe;
				cout &lt;&lt; &quot;Alter:\t\t&quot;;
				cin &gt;&gt; Schuelerdaten[cAuswahl-1].iAlter;
			}

	}
	while (cUeberschreiben != 'j');

}
//DatenAnsehen-------------------------------------------------------------------------
void DatenAnsehen()
{	system(&quot;cls&quot;);
	for (int i=0; i&lt;3; i++)
	{	cout &lt;&lt; &quot;Schueler &quot; &lt;&lt; (i+1) &lt;&lt; &quot;:&quot;;
		cout &lt;&lt; &quot;\n\tName:\t\t&quot; &lt;&lt; Schuelerdaten[i].sName;
		cout &lt;&lt; &quot;\n\tVorname:\t&quot; &lt;&lt; Schuelerdaten[i].sVorname;
		cout &lt;&lt; &quot;\n\tJahrgangsstufe:\t&quot; &lt;&lt; Schuelerdaten[i].iJahrgangsstufe;
		cout &lt;&lt; &quot;\n\tAlter:\t\t&quot; &lt;&lt; Schuelerdaten[i].iAlter;
		cout &lt;&lt; &quot;\n\n&quot;;
	}
	getchar();
	getchar();
}

//DatenBearbeiten----------------------------------------------------------------------
void DatenBearbeiten()
{	char cWahl;
	system(&quot;cls&quot;);
	cout &lt;&lt; &quot;Welchen Datensatz wollen Sie aendern?(1-3)\t&quot;;
	cin &gt;&gt; cWahl;
	cout &lt;&lt; &quot;\n\nVorname:\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].sVorname;
	cout &lt;&lt; &quot;Name:\t\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].sName;
	cout &lt;&lt; &quot;Jahrgangsstufe:\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].iJahrgangsstufe;
	cout &lt;&lt; &quot;Alter:\t\t&quot;;
	cin &gt;&gt; Schuelerdaten[cWahl-1].iAlter;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/968556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968556</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Tue, 17 Jan 2006 06:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 07:07:54 GMT]]></title><description><![CDATA[<p>Verwende lieber ein &quot;int cAuswahl&quot; in der Einlese-Funktion - der char '1' hat den Wert 49 - damit schreibst du deine Daten ein ganzes Stück hinter die Arraygrenzen.</p>
<p>PS: Und verwende auch gleich einen std::vector statt des Arrays, dann brauchst du dir keine Gedanken über die Größe zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968565</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 07:14:50 GMT]]></title><description><![CDATA[<p>Die Ausgabe ist korrekt, deine Eingabe ist falsch. Düfte in einem Debug-Mode unter Umständen sogar chrashen^^</p>
<p>Begründung:</p>
<pre><code class="language-cpp">char cAuswahl;
</code></pre>
<p>Im Feldindex brauchst du ein Integer, du liest ein char ein 2 != '2' Kannst ja in der ASCII-Tabelle mal nachschauen, welchen Zahlenwert das Zeichen '2' hat, dürfte ne 50 oder sowas sein. Heißt du schreibst in dein Feld an die Stelle 50 - 1 -&gt; kann u.U. crashen weil den Speicher hast du garnicht belegt.</p>
<p>Du musst also dein Zeichen korrekt in einen Integer umwandeln</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968570</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 07:34:30 GMT]]></title><description><![CDATA[<p>ich möchte dies schon als char machne, da sonst bei der eingabe eines buchstaben eine endlos-alarm-schleife kommt.<br />
aber dann muss ich die zahl in '' schließen. ich probiers gleich mal aus. danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968586</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 07:36:01 GMT]]></title><description><![CDATA[<p>das geht ja garnicht, wegen der schleife. also brauch ich doch int.<br />
mit vectoren hab ich noch nicht gearbeitet. und das möchte ich auch in diesem prog nicht machen, da es eine grundlagenschulung mit bestimmten inhalten wird (soll der stoff aus der bs im 1. lj sein)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968587</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 07:37:26 GMT]]></title><description><![CDATA[<p>sarah1986 schrieb:</p>
<blockquote>
<p>ich möchte dies schon als char machne, da sonst bei der eingabe eines buchstaben eine endlos-alarm-schleife kommt.</p>
</blockquote>
<p>Dann mußt du anders auf dein Array zugreifen: &quot;cin&gt;&gt;Schuelerdaten[cAuswahl-'1'].sVorname;&quot;</p>
<p>Aber ich würde trotzdem lieber zu int raten, spätestens wenn du dein Array auf mehr als 9 Schüler erweiterst, bekommst du sonst Probleme. Und Fehleingaben kannst du zur Not per Hand abfangen, indem du den Status von cin überprüfst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968590</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:37:26 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe eines Struct-Arrays funzt net on Tue, 17 Jan 2006 07:38:21 GMT]]></title><description><![CDATA[<p>schau dir mal atoi an,. damit kannst du eine Zeichenkette in integer umwandlen. Alternativ gehts auch über C++ String-Klassen, dazu gibts nen Artikel im C++ Board (im FAQ)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968591</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:38:21 GMT</pubDate></item></channel></rss>