<?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[Probleme mit Aufgabe]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgende Aufgabe gestellt bekommen. Habe gerade angefangen mit dem Programmieren und bisher gab es nur relativ leichte Aufgaben. Bei dieser weiß ich nicht so recht was ich zu tuen hab und wie ich das Programm schreiben soll. Mein Skript gibt da auch nicht viel her und im Internet hab ich auch noch nicht brauchbares gefunden. Hoffe ihr könnt mir helfen und die Aufgabe etwas erkären. Ist weniger Text als es aussieht.</p>
<p>Danke schon mal Christian</p>
<p>So sieht die Aufgabenstellung aus:</p>
<blockquote>
<p>Gegeben ist eine Datei (in Form einer „Struktur“) mit Daten für eine Liste über Leistungsnachweise.<br />
Die Datei enthält maximal 100 Datensätze von gleichem Aufbau. Jeder Datensatz ist dabei wie folgt strukturiert:</p>
<p>Name - maximal 20 Zeichen array of character<br />
Vorname - maximal 20 Zeichen array of character<br />
Matrikelnummmer - 6-stellige Zahl long integer<br />
Adresse - Struktur mit unterschiedlichen Komponenten record<br />
Postleitzahl - 5-stellige Zahl long integer<br />
Stadt - maximal 20 Zeichen array of character<br />
Straße - maximal 20 Zeichen array of character<br />
Geschlecht - 0 für weiblich, 1 für männlich bool<br />
Noten - Notenwerte für maximal 10 Fächer array of integer<br />
Gesucht ist die nach Matrikelnummern sortierte Liste mit allen Personen, die mindestens in einem Fach eine ausreichende Leistung (Note 4 oder besser) erzielt haben und in Darmstadt wohnen.</p>
<p>Programmentwurf<br />
1. Als erstes muss die Anzahl der Personen eingegeben ( 0 &lt; Anzahl &lt;=100 ) und einige Datensätze erstellt werden.<br />
2. Anschließend werden die Daten als Datei abgespeichert.<br />
3. Danach sollen in einem seperaten Programm alle Daten eingelesen werden.<br />
4. In diesem Programm werden nun alle Datensätze nach den angegebenen Bedingungen sortiert.und ausgegeben.<br />
Bei der Ausgabe sollen zuerst die Matrikelnummer, anschließend der Nachname, der Wohnort sowie die Anzahl der bestandenen Fächer ausgegeben werden.<br />
Ausgabebeispiel:<br />
456321 Schmidt Darmstadt 5 bestandene Leistungsnachweise<br />
456478 Mueller Darmstadt 3 bestandene Leistungsnachweise<br />
573452 Streber Darmstadt 10 bestandene Leistungsnachweise<br />
598765 Looser Darmstadt 1 bestandener Leistungsnachweis</p>
<p>Testbeispiel<br />
Man überlege sich eine bestimmte Anzahl von Datensätzen so, dass einerseits die Eingabe in einer begrenzten Zeit möglich ist und andererseits die Lösung der gestellten Aufgabe nachvollzogen werden kann.<br />
Hilfe für Übungsblatt 6 :</p>
<p>in der Variablen <em>anzahl</em> steht die Anzahl der Einträge.<br />
Als erster Eintrag wird die Anzahl geschrieben, dann kann das Auslese-Programm die richtige Anzahl auslesen.<br />
Alternativ halten sich beide Programm an eine feste Anzahl, z.B. 100 Einträge.<br />
Es gibt ein Array von Strukturen <em>dateielement datensatz[100]</em> ,in dem sich die Daten befinden.</p>
</blockquote>
<p>Bisher hab ich nur das geschrieben:</p>
<blockquote>
<p># include &lt;iostream&gt;<br />
using namespace std;</p>
<p>struct Adresse<br />
{<br />
long integer Postleitzahl;<br />
array of character Stadt;<br />
array of character Straße;<br />
};</p>
<p>struct Datensatz<br />
{<br />
array of character Name;<br />
array of character Vorname;<br />
long integer Martikelnummer;<br />
bool Geschlecht;<br />
array of integer Noten;<br />
};</p>
</blockquote>
<p>Zusätzlich hab ich noch die Hilfe bekommen wie man etwas Schreiben und Lesen kann:</p>
<blockquote>
<p><strong>Schreiben:</strong><br />
cout &lt;&lt; &quot;unter welchem namen speichern ? &quot; &lt;&lt; endl;<br />
cin &gt;&gt; speichername;<br />
// speichername = &quot;../aufgabe5_04/datensatz&quot;; // oder fester Dateiname<br />
FILE *stream;<br />
/* Open for write */<br />
if( (stream = fopen( speichername, &quot;w+b&quot; )) == NULL )<br />
{<br />
cout &lt;&lt; &quot;The file was not opened&quot; &lt;&lt; endl; //Fehlerbehandlung<br />
return(-1);<br />
}<br />
else<br />
{<br />
cout &lt;&lt; &quot;The file was opened&quot; &lt;&lt; endl; // alles ok<br />
fwrite ( &amp;anzahl, sizeof(anzahl), 1, stream); // erster Eintrag ist Anzahl<br />
fwrite ( datensatz, sizeof(datensatz), 1, stream); // jetzt das Array<br />
/* Close stream */<br />
if( fclose( stream ) )<br />
cout &lt;&lt; &quot;The file was not closed&quot; &lt;&lt; endl;<br />
else<br />
cout &lt;&lt; &quot;file was closed &quot; &lt;&lt; endl;<br />
}<br />
Überdenken Sie, warum anzahl per Adressoperator, datensatz direkt als Parameter übergeben werden müssen.</p>
<p>**Lesen:**if( (stream = fopen( speichername, &quot;rb&quot; )) == NULL )<br />
// if( (stream = fopen( &quot;../aufgabe5_04/datensatz&quot;, &quot;rb&quot; )) == NULL )<br />
//falls fester Name vereinart<br />
{<br />
cout &lt;&lt; &quot;The file was not opened&quot; &lt;&lt; endl; // falls Fehler<br />
return(-1);<br />
}<br />
else<br />
{<br />
cout &lt;&lt; &quot;The file was opened&quot; &lt;&lt; endl; // alles ok<br />
fread ( &amp;anzahl, sizeof(anzahl), 1, stream);<br />
cout &lt;&lt; &quot; Anzahl &quot;&lt;&lt; anzahl &lt;&lt; endl;<br />
fread ( datensatz, sizeof(datensatz), 1, stream);</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/169550/probleme-mit-aufgabe</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 19:40:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169550.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Jan 2007 10:44:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 10:44:55 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgende Aufgabe gestellt bekommen. Habe gerade angefangen mit dem Programmieren und bisher gab es nur relativ leichte Aufgaben. Bei dieser weiß ich nicht so recht was ich zu tuen hab und wie ich das Programm schreiben soll. Mein Skript gibt da auch nicht viel her und im Internet hab ich auch noch nicht brauchbares gefunden. Hoffe ihr könnt mir helfen und die Aufgabe etwas erkären. Ist weniger Text als es aussieht.</p>
<p>Danke schon mal Christian</p>
<p>So sieht die Aufgabenstellung aus:</p>
<blockquote>
<p>Gegeben ist eine Datei (in Form einer „Struktur“) mit Daten für eine Liste über Leistungsnachweise.<br />
Die Datei enthält maximal 100 Datensätze von gleichem Aufbau. Jeder Datensatz ist dabei wie folgt strukturiert:</p>
<p>Name - maximal 20 Zeichen array of character<br />
Vorname - maximal 20 Zeichen array of character<br />
Matrikelnummmer - 6-stellige Zahl long integer<br />
Adresse - Struktur mit unterschiedlichen Komponenten record<br />
Postleitzahl - 5-stellige Zahl long integer<br />
Stadt - maximal 20 Zeichen array of character<br />
Straße - maximal 20 Zeichen array of character<br />
Geschlecht - 0 für weiblich, 1 für männlich bool<br />
Noten - Notenwerte für maximal 10 Fächer array of integer<br />
Gesucht ist die nach Matrikelnummern sortierte Liste mit allen Personen, die mindestens in einem Fach eine ausreichende Leistung (Note 4 oder besser) erzielt haben und in Darmstadt wohnen.</p>
<p>Programmentwurf<br />
1. Als erstes muss die Anzahl der Personen eingegeben ( 0 &lt; Anzahl &lt;=100 ) und einige Datensätze erstellt werden.<br />
2. Anschließend werden die Daten als Datei abgespeichert.<br />
3. Danach sollen in einem seperaten Programm alle Daten eingelesen werden.<br />
4. In diesem Programm werden nun alle Datensätze nach den angegebenen Bedingungen sortiert.und ausgegeben.<br />
Bei der Ausgabe sollen zuerst die Matrikelnummer, anschließend der Nachname, der Wohnort sowie die Anzahl der bestandenen Fächer ausgegeben werden.<br />
Ausgabebeispiel:<br />
456321 Schmidt Darmstadt 5 bestandene Leistungsnachweise<br />
456478 Mueller Darmstadt 3 bestandene Leistungsnachweise<br />
573452 Streber Darmstadt 10 bestandene Leistungsnachweise<br />
598765 Looser Darmstadt 1 bestandener Leistungsnachweis</p>
<p>Testbeispiel<br />
Man überlege sich eine bestimmte Anzahl von Datensätzen so, dass einerseits die Eingabe in einer begrenzten Zeit möglich ist und andererseits die Lösung der gestellten Aufgabe nachvollzogen werden kann.<br />
Hilfe für Übungsblatt 6 :</p>
<p>in der Variablen <em>anzahl</em> steht die Anzahl der Einträge.<br />
Als erster Eintrag wird die Anzahl geschrieben, dann kann das Auslese-Programm die richtige Anzahl auslesen.<br />
Alternativ halten sich beide Programm an eine feste Anzahl, z.B. 100 Einträge.<br />
Es gibt ein Array von Strukturen <em>dateielement datensatz[100]</em> ,in dem sich die Daten befinden.</p>
</blockquote>
<p>Bisher hab ich nur das geschrieben:</p>
<blockquote>
<p># include &lt;iostream&gt;<br />
using namespace std;</p>
<p>struct Adresse<br />
{<br />
long integer Postleitzahl;<br />
array of character Stadt;<br />
array of character Straße;<br />
};</p>
<p>struct Datensatz<br />
{<br />
array of character Name;<br />
array of character Vorname;<br />
long integer Martikelnummer;<br />
bool Geschlecht;<br />
array of integer Noten;<br />
};</p>
</blockquote>
<p>Zusätzlich hab ich noch die Hilfe bekommen wie man etwas Schreiben und Lesen kann:</p>
<blockquote>
<p><strong>Schreiben:</strong><br />
cout &lt;&lt; &quot;unter welchem namen speichern ? &quot; &lt;&lt; endl;<br />
cin &gt;&gt; speichername;<br />
// speichername = &quot;../aufgabe5_04/datensatz&quot;; // oder fester Dateiname<br />
FILE *stream;<br />
/* Open for write */<br />
if( (stream = fopen( speichername, &quot;w+b&quot; )) == NULL )<br />
{<br />
cout &lt;&lt; &quot;The file was not opened&quot; &lt;&lt; endl; //Fehlerbehandlung<br />
return(-1);<br />
}<br />
else<br />
{<br />
cout &lt;&lt; &quot;The file was opened&quot; &lt;&lt; endl; // alles ok<br />
fwrite ( &amp;anzahl, sizeof(anzahl), 1, stream); // erster Eintrag ist Anzahl<br />
fwrite ( datensatz, sizeof(datensatz), 1, stream); // jetzt das Array<br />
/* Close stream */<br />
if( fclose( stream ) )<br />
cout &lt;&lt; &quot;The file was not closed&quot; &lt;&lt; endl;<br />
else<br />
cout &lt;&lt; &quot;file was closed &quot; &lt;&lt; endl;<br />
}<br />
Überdenken Sie, warum anzahl per Adressoperator, datensatz direkt als Parameter übergeben werden müssen.</p>
<p>**Lesen:**if( (stream = fopen( speichername, &quot;rb&quot; )) == NULL )<br />
// if( (stream = fopen( &quot;../aufgabe5_04/datensatz&quot;, &quot;rb&quot; )) == NULL )<br />
//falls fester Name vereinart<br />
{<br />
cout &lt;&lt; &quot;The file was not opened&quot; &lt;&lt; endl; // falls Fehler<br />
return(-1);<br />
}<br />
else<br />
{<br />
cout &lt;&lt; &quot;The file was opened&quot; &lt;&lt; endl; // alles ok<br />
fread ( &amp;anzahl, sizeof(anzahl), 1, stream);<br />
cout &lt;&lt; &quot; Anzahl &quot;&lt;&lt; anzahl &lt;&lt; endl;<br />
fread ( datensatz, sizeof(datensatz), 1, stream);</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1204161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204161</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 10:44:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 11:15:19 GMT]]></title><description><![CDATA[<p>mach doch mal das</p>
<blockquote>
<p>1. Als erstes muss die Anzahl der Personen eingegeben ( 0 &lt; Anzahl &lt;=100 ) und einige Datensätze erstellt werden.</p>
</blockquote>
<p>Etwas einlesen wirst du doch können.</p>
<p>PS: Mit richtigen tags sieht es so aus.</p>
<pre><code class="language-cpp"># include &lt;iostream&gt;
using namespace std;

struct Adresse
{
	long integer Postleitzahl;
	array of character Stadt;
	array of character Straße;
};

struct Datensatz
{
	array of character Name;
	array of character Vorname;
    long integer Martikelnummer;
	bool Geschlecht;
	array of integer Noten;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1204170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204170</guid><dc:creator><![CDATA[na dann]]></dc:creator><pubDate>Sat, 06 Jan 2007 11:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 11:17:17 GMT]]></title><description><![CDATA[<p>jetzt seh ichs jetzt auch</p>
<p>ein array mach man so</p>
<pre><code class="language-cpp">char name[20];
</code></pre>
<p>Vielleicht kannst du doch noch nichts einlesen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1204173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204173</guid><dc:creator><![CDATA[na dann]]></dc:creator><pubDate>Sat, 06 Jan 2007 11:17:17 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 11:44:11 GMT]]></title><description><![CDATA[<p>Danke,<br />
sorry ich habe wirklich keinen Plan wie die Aufgabe zu lösen ist.<br />
Das sortieren am Ende und das Ausgeben dürfte kein Problem sein.</p>
<p>Mein Problem ist es die Datensätze zu erstellen und abzuspeichern.</p>
<p>ok jetzt sieht es wie folgt aus</p>
<pre><code class="language-cpp"># include &lt;iostream&gt;
using namespace std;

struct Adresse
{
	long integer Postleitzahl;
	char Stadt[20];
	char Straße[20];
};

struct Datensatz
{
	char Name[20];
	char Vorname[20];
    long integer Martikelnummer;
    Adresse adresse;
	bool Geschlecht;
	int Noten[10];
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1204192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204192</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 11:44:11 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 12:40:12 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich empfehle dir statt mit char-arrays zu arbeiten dich für std::strign zu entscheiden und zweitens solltest du nun mal anfangen den ersten Punkt der Aufgabenstellung zu bearbeiten. Drittens solltest du dich entscheiden, ob du c oder c++ programmieren willst. Was du da machst, ist ein Mix aus beiden und in der Regel ist das nicht unbedingt sinnvoll.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204224</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 06 Jan 2007 12:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 12:49:17 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Ich empfehle dir statt mit char-arrays zu arbeiten dich für std::strign zu entscheiden<br />
chrische</p>
</blockquote>
<p>Das macht das speichern aber aufwendiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204228</guid><dc:creator><![CDATA[bedenke]]></dc:creator><pubDate>Sat, 06 Jan 2007 12:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 13:01:11 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>bedenke schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>Ich empfehle dir statt mit char-arrays zu arbeiten dich für std::strign zu entscheiden<br />
chrische</p>
</blockquote>
<p>Das macht das speichern aber aufwendiger.</p>
</blockquote>
<p>Verstehe ich nicht und sehe ich dementsprechend nicht so.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204234</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 06 Jan 2007 13:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 13:06:52 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Ich empfehle dir statt mit char-arrays zu arbeiten dich für std::strign zu entscheiden und zweitens solltest du nun mal anfangen den ersten Punkt der Aufgabenstellung zu bearbeiten. Drittens solltest du dich entscheiden, ob du c oder c++ programmieren willst. Was du da machst, ist ein Mix aus beiden und in der Regel ist das nicht unbedingt sinnvoll.</p>
<p>chrische</p>
</blockquote>
<p>Ich empfehle dir dem OP nicht Hinweise auf eine falsche Loesung seiner Aufgabe zu geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204237</guid><dc:creator><![CDATA[Entenwickler]]></dc:creator><pubDate>Sat, 06 Jan 2007 13:06:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 13:35:37 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Verstehe ich nicht und sehe ich dementsprechend nicht so.<br />
chrische</p>
</blockquote>
<p>struktur mit char[] speichern<br />
Pseudocode:<br />
write(strukt, sizeof(strukt))</p>
<p>und wie machst du es mit nem std::string?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204261</guid><dc:creator><![CDATA[bedenke]]></dc:creator><pubDate>Sat, 06 Jan 2007 13:35:37 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 14:11:32 GMT]]></title><description><![CDATA[<p>bedenke schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>Verstehe ich nicht und sehe ich dementsprechend nicht so.<br />
chrische</p>
</blockquote>
<p>struktur mit char[] speichern<br />
Pseudocode:<br />
write(strukt, sizeof(strukt))<br />
und wie machst du es mit nem std::string?</p>
</blockquote>
<pre><code class="language-cpp">file &lt;&lt; strukt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1204302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204302</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 06 Jan 2007 14:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 14:33:16 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<pre><code class="language-cpp">file &lt;&lt; strukt;
</code></pre>
</blockquote>
<p>Konnte ich jetzt nicht glauben und hat auch zu dem geführt, was ich dachte.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;fstream&gt;

struct A {
	int i;
	std::string text;
} strukt;

int main() {
	std::fstream file(&quot;C:\\test123.txt&quot;, std::ios::out);
	strukt.i = 10;
	strukt.text = &quot;hallo 123&quot;;
	file &lt;&lt; strukt;
}
</code></pre>
<p>error C2679: Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operator vom Typ 'A' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204325</guid><dc:creator><![CDATA[bedenke]]></dc:creator><pubDate>Sat, 06 Jan 2007 14:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 14:36:15 GMT]]></title><description><![CDATA[<p>Ja, Du solltest den Operator vielleicht noch geeignet überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204329</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 06 Jan 2007 14:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 14:39:01 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ja, Du solltest den Operator vielleicht noch geeignet überladen.</p>
</blockquote>
<p>bedenke schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>Ich empfehle dir statt mit char-arrays zu arbeiten dich für std::strign zu entscheiden<br />
chrische</p>
</blockquote>
<p>Das macht das speichern aber aufwendiger.</p>
</blockquote>
<p>Oder wie machst du das so einfach wie write(strukt, sizeof(strukt)) ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204334</guid><dc:creator><![CDATA[bedenke]]></dc:creator><pubDate>Sat, 06 Jan 2007 14:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 14:48:45 GMT]]></title><description><![CDATA[<p>Man könnte ihn auch einfach so speichern:</p>
<pre><code class="language-cpp">struct foo
{
  int i;
  string str;
};

foo f;
f.i = 12;
f.str = &quot;Hallo Welt&quot;;

ofstream file( &quot;foo&quot; );
file.write( (const char*)&amp;f.i, sizeof( int ) );
file.write( (const char*)&amp;f.str.size(), sizeof( string::size_type ) );
file.write( (const char*)f.str.data(), f.str.size() );

//einlesen
ifstream file( &quot;foo&quot; );

file.read( (char*)&amp;f.i, sizeof( int ) );
string::size_type tmpSize;
file.read( (char*)&amp;tmpSize, sizeof( string::size_type ) );
f.str.resize( tmpSize );
file.read( (char*)&amp;f.str[0], tmpSize );
</code></pre>
<p>Das ist nur ein Beispiel wie man es machen kann und sollte auf keinen Fall 1:1 in ein echtes Programm übernommen werden.</p>
<p>Edit:</p>
<p>Achso, das ganze schreibt man natürlich in Methoden von foo und dann ist es einfach von außen f.write( file ) und f.read( file ).</p>
<p>Edit2:</p>
<p>Mein Beispiel bezieht sich auf das Speichern der Binärdaten, da ich davon ausging, dass es darum ging. Ich persönlich würde eine Serialisierung mit op&lt;&lt; und op&gt;&gt; bevorzugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204343</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sat, 06 Jan 2007 14:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 14:47:12 GMT]]></title><description><![CDATA[<p>Ich glaube, wir beide haben sehr unterschiedliche Auffassungen von &quot;einfach&quot;. Einfach heißt für mich nicht &quot;sehr wenig Code zu schreiben&quot; sondern &quot;übersichtlicher Code, der keine komplexen Konzepte und keine potenziell gefährlichen Low-Level-Details benötigt&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204344</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 06 Jan 2007 14:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 15:01:57 GMT]]></title><description><![CDATA[<p>Christian_c++ schrieb:</p>
<blockquote>
<p>...<br />
Name - maximal 20 Zeichen array of character<br />
Vorname - maximal 20 Zeichen array of character<br />
...</p>
</blockquote>
<p>nur mal so zur info: Die Lösung sollte mit char gelöst werden laut Aufgabenstellung, daher würde ich in diesem Fall kein string nehmen.</p>
<p>gez. info</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204361</guid><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sat, 06 Jan 2007 15:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 15:33:32 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ich glaube, wir beide haben sehr unterschiedliche Auffassungen von &quot;einfach&quot;. Einfach heißt für mich nicht &quot;sehr wenig Code zu schreiben&quot; sondern &quot;übersichtlicher Code, der keine komplexen Konzepte und keine potenziell gefährlichen Low-Level-Details benötigt&quot;.</p>
</blockquote>
<p>Ach jetzt plötzlich rausreden. :p <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 />
Hat nach</p>
<pre><code class="language-cpp">file &lt;&lt; strukt;
</code></pre>
<p>mehr nach &quot;sehr wenig Code zu schreiben&quot; und nicht nach &quot;übersichtlicher Code, der keine komplexen Konzepte und keine potenziell gefährlichen Low-Level-Details benötigt&quot; ausgeschaut.</p>
<p>Und das Operator überladen ist sicher nicht weniger komplex und auch nicht immer ungefährlich. Bei file &lt;&lt; ist es noch ziemlich klar was &lt;&lt; bedeutet, aber genau weiß man es nie. Außerdem musst du dann aufpassen, dass du keine element vergisst. Wenn C++ Reflection hätte, dann könnte man das schöner machen.</p>
<p>Und die info von info sollte man auch beachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204383</guid><dc:creator><![CDATA[bedenke]]></dc:creator><pubDate>Sat, 06 Jan 2007 15:33:32 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 15:38:42 GMT]]></title><description><![CDATA[<p>bedenke schrieb:</p>
<blockquote>
<p>Hat nach</p>
<pre><code class="language-cpp">file &lt;&lt; strukt;
</code></pre>
<p>mehr nach &quot;sehr wenig Code zu schreiben&quot; und nicht nach &quot;übersichtlicher Code, der keine komplexen Konzepte und keine potenziell gefährlichen Low-Level-Details benötigt&quot; ausgeschaut.</p>
</blockquote>
<p>Hm, das war dann ein Missverständnis. Natürlich soll der Anwendungscode so kurz wie möglich sein; daher ist Operatorenüberladung ja gerade so schön (und daher ist die Einführung dieses Konzepts verkraftbar). Die Implementierung hingegen muss nicht kurz sein; sie wird ja nur einmal geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204387</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 06 Jan 2007 15:38:42 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 16:58:47 GMT]]></title><description><![CDATA[<p>Hi,<br />
danke das so viele etwas geschrieben haben, ich muss sagen, dass ich bisher nur Programme mit ein paar Schleifen und evt. einer Funktion geschrieben habe. Mit struct hatte ich bisher nioch nichts gemacht, deshalb tue ich mich so schwer.</p>
<p>Ist es so richtig einen Datensatz zu erstellen?</p>
<pre><code class="language-cpp"># include &lt;iostream&gt;
using namespace std;

struct Adresse
{
	long integer Postleitzahl;
	char Stadt[20];
	char Straße[20];
};

struct Datensatz
{
	char Name[20];
	char Vorname[20];
    long integer Martikelnummer;
    Adresse adresse;
	bool Geschlecht;
	int Noten[10];
};

Datensatz a;
a.Name=&quot;Mueller&quot;;
a.Vorname=&quot;Hans&quot;;
a.Martikelnummer=254781;
a.adresse.Postleitzahl=64258;
a.adresse.Stadt=&quot;Darmstadt&quot;;
a.adresse.Straße=&quot;Darmstaedter Str&quot;;
a.Geschlecht=1;
a.Noten=5;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1204451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204451</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 16:58:47 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 17:11:51 GMT]]></title><description><![CDATA[<p>Bei char arrays solltest du besser mit strcpy den string &quot;eintragen&quot;</p>
<pre><code class="language-cpp">strcpy(a.Name, &quot;Mueller&quot;)
</code></pre>
<p>Das mit = zuweisen geht nur bei std::string richtig, aber die sollst du ja nicht verwenden.<br />
Und wenn Noten ein array ist, dann kannst du da nicht nur eine Zahl zuweisen, sondern mehrere</p>
<pre><code class="language-cpp">a.Noten[0]=5;
a.Noten[1]=1;
a.Noten[2]=3;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1204463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204463</guid><dc:creator><![CDATA[name:]]></dc:creator><pubDate>Sat, 06 Jan 2007 17:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 18:13:02 GMT]]></title><description><![CDATA[<p>Hi,<br />
danke stimmt. Nur warum soll der name, vorname, stadt, straße ein array sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204550</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 18:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 18:32:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">a.Name[0] = 'M';
a.Name[1] = 'a';
a.Name[2] = 'x';
a.Name[3] = 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1204567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204567</guid><dc:creator><![CDATA[Der gewünschte Benutzerna]]></dc:creator><pubDate>Sat, 06 Jan 2007 18:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 18:35:31 GMT]]></title><description><![CDATA[<p>kann man da nicht einfach nur:</p>
<p>char name;.......</p>
<p>a.name=&quot;Max&quot;;</p>
<p>schreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204571</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 18:35:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 19:33:02 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe jetzt mal ein Datensatz erstellt und den Abschnitt zum speichern der Daten als Datei einfach wie vorgegeben reinkopiert. so sieht es jetzt aus:</p>
<p>[cpp]# include &lt;iostream&gt;<br />
using namespace std;</p>
<p>struct Adresse<br />
{<br />
long int Postleitzahl;<br />
char Stadt[20];<br />
char Straße[20];<br />
};</p>
<p>struct dateielement<br />
{<br />
char Name[20];<br />
char Vorname[20];<br />
long int Martikelnummer;<br />
Adresse adresse;<br />
bool Geschlecht;<br />
int Noten[10];<br />
};</p>
<p>int main ()<br />
{<br />
char speichername;<br />
int anzahl;<br />
cout&lt;&lt;&quot;Bitte Anzahl eingeben&quot;&lt;&lt;endl;<br />
cin&gt;&gt;anzahl; <strong>das muss const int sein, wie bekomm ich das hin?</strong><br />
dateielement datensatz[anzahl];<br />
strcpy(datensatz[0].Name, &quot;Mueller&quot;);<br />
strcpy(datensatz[0].Vorname, &quot;Hans&quot;);<br />
datensatz[0].Martikelnummer=254781;<br />
datensatz[0].adresse.Postleitzahl=64258;<br />
strcpy(datensatz[0].adresse.Stadt,&quot;Darmstadt&quot;);<br />
strcpy(datensatz[0].adresse.Straße,&quot;Darmstaedterstraße&quot;);<br />
datensatz[0].Geschlecht=1;<br />
datensatz[0].Noten[0]=5;<br />
datensatz[0].Noten[3]=2;</p>
<p>cout &lt;&lt; &quot;unter welchem namen speichern ? &quot; &lt;&lt; endl;<br />
cin &gt;&gt; speichername;<br />
FILE *stream;<br />
if( (stream = fopen( speichername, &quot;w+b&quot; )) == NULL ) *<em>folgender Fehler:error C2664: 'fopen' : cannot convert parameter 1 from 'char' to 'const char <em>'</em></em><br />
{<br />
cout &lt;&lt; &quot;The file was not opened&quot; &lt;&lt; endl;<br />
return(-1);<br />
}<br />
else<br />
{<br />
cout &lt;&lt; &quot;The file was opened&quot; &lt;&lt; endl;<br />
fwrite ( &amp;anzahl, sizeof(anzahl), 1, stream);<br />
fwrite ( datensatz, sizeof(datensatz), 1, stream);<br />
if( fclose( stream ) )<br />
cout &lt;&lt; &quot;The file was not closed&quot; &lt;&lt; endl;<br />
else<br />
cout &lt;&lt; &quot;file was closed &quot; &lt;&lt; endl;<br />
}</p>
<p>return 0;<br />
}[/cpp]</p>
<p>Jetzt gibts 2 Probleme, könnt ihr mir da bitte helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204622</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 19:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 19:52:27 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>cin&gt;&gt;anzahl; das muss const int sein, wie bekomm ich das hin?</p>
</blockquote>
<p>Wenn ein Array keine feste Größe hat, kannst du kein statisiches C-Array nehmen. Entweder reservierst du selber nötoigen Speicher (siehe new), oder du verwendest gleich std::vector. Schau in das Forumeigene Magazin, da gibt es ein Artikel zu den STL-Containern.</p>
<blockquote>
<p>if( (stream = fopen( speichername, &quot;w+b&quot; )) == NULL ) folgender Fehler:error C2664: 'fopen' : cannot convert parameter 1 from 'char' to 'const char *'</p>
</blockquote>
<p>Die Fehlermeldung ist doch aussagekräftig genug. &quot;Speichername&quot; ist als <em>char</em> definiert. Aber ein einzelnes Zeichen ist wohl kaum ausreichend für einen Dateienamen, also will fopen davon nichts wissen. Du müßtest schon <em>char</em>* verwenden, oder besser gleich <em>std::string</em> und dann auch <em>std::ifstream</em>.</p>
<p>Am besten machst du erstmal ein ordentliches <a href="http://tutorial.schornboeck.net/inhalt.htm" rel="nofollow">C++ Tutorial</a>, dieser C/C++ Mischmasch ist schlecht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204636</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 06 Jan 2007 19:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Aufgabe on Sat, 06 Jan 2007 20:20:23 GMT]]></title><description><![CDATA[<p>Danke jetzt funktioniert es.</p>
<p>Teil 1+2 hab ich ja jetzt in main().</p>
<blockquote>
<p>1. Als erstes muss die Anzahl der Personen eingegeben ( 0 &lt; Anzahl &lt;=100 ) und einige Datensätze erstellt werden.<br />
2. Anschließend werden die Daten als Datei abgespeichert.</p>
</blockquote>
<p>Als nächstes soll folgendes gemacht werden:</p>
<blockquote>
<p>3. Danach sollen in einem seperaten Programm alle Daten eingelesen werden.<br />
4. In diesem Programm werden nun alle Datensätze nach den angegebenen Bedingungen sortiert.und ausgegeben.<br />
Bei der Ausgabe sollen zuerst die Matrikelnummer, anschließend der Nachname, der Wohnort sowie die Anzahl der bestandenen Fächer ausgegeben werden.<br />
Ausgabebeispiel:<br />
456321 Schmidt Darmstadt 5 bestandene Leistungsnachweise<br />
456478 Mueller Darmstadt 3 bestandene Leistungsnachweise<br />
573452 Streber Darmstadt 10 bestandene Leistungsnachweise<br />
598765 Looser Darmstadt 1 bestandener Leistungsnachweis</p>
</blockquote>
<p>wie soll denn jetzt das neue Programm aussehen? wie kann ich es einführen?</p>
<p>Gruß Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1204654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1204654</guid><dc:creator><![CDATA[Christian_c++]]></dc:creator><pubDate>Sat, 06 Jan 2007 20:20:23 GMT</pubDate></item></channel></rss>