<?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[char in Array speichern]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich lese eine Zeile (char Zeile[300]) ein die ich gegebenfalls in einem Array speichern möchte. Leider weiß ich nicht genau wie ich das am besten/überhaupt umsetzen kann.</p>
<p>Die Zuweisung:</p>
<pre><code class="language-cpp">Array[i] = Zeile;
</code></pre>
<p>funktioniert leider nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278145/char-in-array-speichern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 12:44:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278145.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Dec 2010 05:27:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 05:27:03 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich lese eine Zeile (char Zeile[300]) ein die ich gegebenfalls in einem Array speichern möchte. Leider weiß ich nicht genau wie ich das am besten/überhaupt umsetzen kann.</p>
<p>Die Zuweisung:</p>
<pre><code class="language-cpp">Array[i] = Zeile;
</code></pre>
<p>funktioniert leider nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988305</guid><dc:creator><![CDATA[benji2010]]></dc:creator><pubDate>Wed, 01 Dec 2010 05:27:03 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 07:11:20 GMT]]></title><description><![CDATA[<p>Niemand weiss, was Array ist, niemand weiss, welche Fehlermeldung du erhältst, da wird dir wohl niemand helfen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988322</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 01 Dec 2010 07:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 08:17:20 GMT]]></title><description><![CDATA[<p>Nimm für die Zeile std::string und für das Array std::vector (also std::vector<a href="std::string" rel="nofollow">std::string</a>), dann erübrigen sich gleich einige Probleme, wie z.B. deine Zuweisung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988333</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 01 Dec 2010 08:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 09:19:02 GMT]]></title><description><![CDATA[<p>dann erkläre ich das noch mal ausführlicher:</p>
<p>ich habe mehrere chars:</p>
<pre><code>char str1[30] = &quot;Das ist ein&quot;
char str2[30] = &quot;kleiner Test&quot;
char str3[30] = &quot;zur Veranschaulichung&quot;
char str4[30] = &quot;Punkt Ausrufezeichen&quot;
</code></pre>
<p>Jetzt möchte ich gerne str2 und str4 (irgendwo) speichern, um Sie später wieder abzurufen. Soll dann auch nicht mehr str1-4 heißen. Dachte da an ein Array. Denke mal das ist ein einfaches Problem, nur kenne ich die beste Vorgehensweise nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988364</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Wed, 01 Dec 2010 09:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 09:25:21 GMT]]></title><description><![CDATA[<p>Die beste Vorgehensweise wurde bereits genannt:</p>
<pre><code class="language-cpp">vector&lt;string&gt; lines;
lines.push_back(&quot;Das ist ein&quot;);
lines.push_back(&quot;kleiner Test&quot;);

// Du kannst auch schon bemi Erstellen des Objekts zwei Zeilen anlegen:
vector&lt;string&gt; lines(2);
lines[0] = &quot;Das ist ein&quot;;
lines[1] = &quot;kleiner Test&quot;;
</code></pre>
<p>Du hast keine Buffer Overflows mehr (da sich die Größe eines std::string automatisch anpasst), Kopiersemantik (string1 = string2 funktioniert, nicht so wie bei rohen C-Strings, wo du strcpy brauchst) und keinen Aufwand mit der Speicherverwaltung, den du hast, wenn du auf dynamische C-Strings umsteigst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988366</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 01 Dec 2010 09:25:21 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 09:49:44 GMT]]></title><description><![CDATA[<p>Danke erstmal für die viele Hilfe !</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26567">@MichaelE</a></p>
<p>Bei mir heißt str aber immer Zeile und nicht str1 oder str2...Dies liegt daran<br />
das ich ein Textdokument zeilenweise einlese. Auch der Zeilentext ist immer anders. Möchte zum Beispiel die oben genannten Zeilen einlesen und immer wenn ein A drin vorkommt soll er die Zeilen speichern. Irgendwann schreibe ich diese Zeilen dann nochmals in ein Text-File. Geht es auch so:</p>
<p>Einlesen tue ich so:</p>
<pre><code class="language-cpp">int CCv::E( char *FileName, char *PreFileName )
{
    FILE * fpIn, * fpOut;
    char	Zeile[300], 

    while (( fgets( Zeile, 200, fpIn )) != NULL )
    {

       ???

        fprintf( fpOut, &quot;%s&quot;, Zeile );
    }
    fclose( fpIn );
    fclose( fpOut );
    return 1;
}
</code></pre>
<p>und dort wo die drei Fragezeichen sind soll hat die Abfrage rein. Kommt irgendwas in der Zeile vor? Wenn ja speichern in lines.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988378</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Wed, 01 Dec 2010 09:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 09:58:03 GMT]]></title><description><![CDATA[<p><code>FILE</code> ist auch C-Stil. Womit lernst du C++?</p>
<p>Ich würd der Funktion im folgenden Code gerne einen schönen Namen geben, aber unter <code>CCv::E</code> kann ich mir beim besten Willen nichts vorstellen. Du solltest sprechende Namen verwenden.</p>
<pre><code class="language-cpp">vector&lt;string&gt; lines;
ifstream in(&quot;dateiname.txt&quot;);
string line;
while(getline(in, line))
{
	if(line.find('A') != string::npos)
		lines.push_back(line);
}
</code></pre>
<p><a href="http://www.cplusplus.com/reference/" rel="nofollow">Hier</a> gibts ne gute C++-Referenz, in der du Funktionen nachschlagen kannst, die du nicht kennst. Aber du solltest dir auch ein Buch schnappen, um diese Grundlagen zu lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988386</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 01 Dec 2010 09:58:03 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 13:34:27 GMT]]></title><description><![CDATA[<p>Hallo Michael,</p>
<p>habe leider ein Programm übernehmen müssen, welches schon in C geschrieben ist.<br />
Muss halt nur dieses Problem einbauen. Danke für die Reference, da muss ich mich am Wochenende wohl nochmal hinsetzen !</p>
<p>Nur eins noch:<br />
Wie kann ich die Zeile in die Textdatei schreiben ?</p>
<pre><code class="language-cpp">vector&lt;string&gt; lines;
ifstream in(&quot;dateiname.txt&quot;);
string line;
while(getline(in, line))
{
    if(line.find('A') != string::npos)
        lines.push_back(line); 

}
</code></pre>
<p>Ich bin erstaml bei dem C-Stil geblieben und füge in meine Abfrage folgendes ein:</p>
<pre><code class="language-cpp">fprintf( fpOut, &quot;%s&quot;, lines );
</code></pre>
<p>Nur leider kommt da der Fehler:</p>
<pre><code>&quot;Der Vorgang READ konnte auf dem Speicher nicht ausgeführt werden&quot; ??
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1988527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988527</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Wed, 01 Dec 2010 13:34:27 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 13:51:24 GMT]]></title><description><![CDATA[<p>Du kannst C (fprintf) und C++ (vector) nicht mischen und erwarten, dass dies funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988540</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 01 Dec 2010 13:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 13:52:49 GMT]]></title><description><![CDATA[<p>Ich konnte mir ja fast schon denken, dass dies daran liegt ! <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>Wie funktioniert dies in C++ ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988541</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Wed, 01 Dec 2010 13:52:49 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Wed, 01 Dec 2010 14:03:45 GMT]]></title><description><![CDATA[<p>Du kannst das schon mischen, du solltest nur nicht erwarten, dass etwas funktioniert was keinen Sinn ergibt.</p>
<p>Wenn du aus deinem <code>vector</code> einen <code>string</code> mit <code>printf</code> ausgeben willst dann musst du dir zuerst den <code>string</code> holen, das kannst du zum Beispiel mit der Methode <code>at(position)</code> . Und danach musst du eine Methode aufrufen, die einen C-String aus dem String zurück gibt. Die trägt den treffenden Name <code>c_str()</code> .</p>
<pre><code class="language-cpp">printf(&quot;%s&quot;, lines.at(0).c_str());
// besser
cout &lt;&lt; lines.at(0);
</code></pre>
<p>0 ist das erste Element im <code>vector</code> und so weiter bis <code>lines.size() -1</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988553</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Wed, 01 Dec 2010 14:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Thu, 02 Dec 2010 07:06:54 GMT]]></title><description><![CDATA[<p>Danke dir...Funktioniert wirklich super ! Allerdings wollte ich mich gestern mal<br />
belesen, aber sowas finde ich ihn keinem meiner C++-Bücher:</p>
<pre><code class="language-cpp">lines.at(i).c_str()
</code></pre>
<p>Also kann man das auch nicht zu Grundlagen zählen, oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988859</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Thu, 02 Dec 2010 07:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to char in Array speichern on Thu, 02 Dec 2010 07:45:05 GMT]]></title><description><![CDATA[<p>Was meinst du, die Verkettung von den Methoden? Man kann zumindest das Verständnis dafür als Grundlagen auffassen.</p>
<p><code>at(i)</code> → gibt eine Referenz vom Typ (bei dir) <code>string</code> zurück, dass sollte soweit klar sein und kann als Grundlage [Objekt,Referenz,Methode] gesehen werden.<br />
Das Objekt vom Typ <code>string</code> , stellt aber wieder eigene Methoden (zB. <code>c_str()</code> ) zur Verfügung. Somit liegt es nahe die Operationen zusammen zufassen. Das was du sicher kennst und für dich am Anfang deutlicher ist, ist das speichern des <code>string</code> auf ein temporäres Objekt und damit weiter zu arbeiten.</p>
<pre><code class="language-cpp">std::string temp = lines.at(0);
temp.c_str();
</code></pre>
<p>Im Normalfall gibt das auch kein Problem, weil der Compiler das Zwischenobjekt für dich weg optimieren kann. Wenn du aber eine Klasse mit eigenen Kopierkonstruktor hast, dann weiß der Compiler nicht, was beim Kopieren alles vor sich geht und kann nicht einfach annehmen, dass dort nichts wichtiges passiert. Ausnahme ist, der Kopierkonstruktor ist <code>inline</code> . <code>inline</code> selber ist aber so eine eigene Sache die nur schwer beeinflussbar ist. Außer du schreibst nur Einzeiler, da wird der Compiler wohl kaum um das <code>inline</code> rum kommen.<br />
Auch sieht es oft schöner aus, wenn man keine temporären Hilfsobjekte im Code hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988870</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Thu, 02 Dec 2010 07:45:05 GMT</pubDate></item></channel></rss>