<?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[Mehrdimensionale Arrays Schleife]]></title><description><![CDATA[<p>Moin zusammen!</p>
<p>Das Array &quot;variable&quot; wird vor dem Aufruf der Funktion mit Werten beschrieben. Außerdem ist die Anzahl der Werte unterschiedlich.</p>
<p>Bei dem Aufruf der Funktion wird (wie auch anders erwartet :o alle Werte bis zu dem Letzten und ein Wert mehr ausgegeben).</p>
<p>Wie kann man in der Hinsicht das Ausgeben der &quot;letzten&quot; Variablen bzw verhindern, dass das nächste des Arrays (was leer ist) ausgegeben wird?</p>
<p>P.S. Bitte keine Äußerungen hinsichtlich wie weit ich beim Erlernen von c++ bin. Als Anfänger darf man dies Fragen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code>string variable[1000][100];

int limit;
int limit2;

int func() {

  for(loop2=0;loop2&lt;=limit2;loop2++) {

    for(loop=0;loop&lt;=limit;loop++) {

      cout &lt;&lt; variable[loop2][loop] &lt;&lt; endl;

    }

  }

}
</code></pre>
<p>Vielen Dank im Voraus!</p>
<p>Grüße</p>
<p>user_1992</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319318/mehrdimensionale-arrays-schleife</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 18:00:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319318.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Aug 2013 09:57:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 09:57:13 GMT]]></title><description><![CDATA[<p>Moin zusammen!</p>
<p>Das Array &quot;variable&quot; wird vor dem Aufruf der Funktion mit Werten beschrieben. Außerdem ist die Anzahl der Werte unterschiedlich.</p>
<p>Bei dem Aufruf der Funktion wird (wie auch anders erwartet :o alle Werte bis zu dem Letzten und ein Wert mehr ausgegeben).</p>
<p>Wie kann man in der Hinsicht das Ausgeben der &quot;letzten&quot; Variablen bzw verhindern, dass das nächste des Arrays (was leer ist) ausgegeben wird?</p>
<p>P.S. Bitte keine Äußerungen hinsichtlich wie weit ich beim Erlernen von c++ bin. Als Anfänger darf man dies Fragen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code>string variable[1000][100];

int limit;
int limit2;

int func() {

  for(loop2=0;loop2&lt;=limit2;loop2++) {

    for(loop=0;loop&lt;=limit;loop++) {

      cout &lt;&lt; variable[loop2][loop] &lt;&lt; endl;

    }

  }

}
</code></pre>
<p>Vielen Dank im Voraus!</p>
<p>Grüße</p>
<p>user_1992</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345687</guid><dc:creator><![CDATA[user_1992]]></dc:creator><pubDate>Wed, 14 Aug 2013 09:57:13 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 10:04:07 GMT]]></title><description><![CDATA[<p>&lt; statt &lt;=. So sehen dann praktisch alle Schleifen aus, mit denen du in C++ über ein Feld läufst (gerne auch mit != statt &lt;, das ist dann noch allgemeiner).</p>
<p>P.S.: Globale Variablen: Pfui! Sofort sein lassen, bevor du es dir angewöhnst. Falls du dich fragst, wie du ein 2D-Array einfach in eine Funktion bekommst: Da böte sich eine Kapselung in eine schöne Klasse an, zum Beispiel eine der vielen Klassen der Standardbibliothek, die bereits dafür gemacht sind, Daten zu halten. Rohe Arrays hat man in C++ fast nie. Und rohe mehrdimensionale Arrays benutzt man noch seltener.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345689</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Aug 2013 10:04:07 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 10:06:34 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort!</p>
<p>Auf die Antwort hätte man auch kommen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Diese Funktion wollte ich gerne in folgendem Source-Code einsetzen:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;dirent.h&gt;  // for folder list

using namespace std;

DIR *hdir;  // for folder list

struct dirent *entry;  // for folder list

char path[ ] = &quot;c:\\&quot;;  // for folder list

int loop;
int loop2;
int loop3;

int contents_folder_int;
int contents_folder_int2;

string contents_folder[1000][100];

string name_of_file = &quot;report.txt&quot;;  // for write file

ofstream write_file;  // for write file

int func_folder_list() {

	hdir = opendir(path);

	do {

    	entry = readdir(hdir);

		if (entry) {

        	contents_folder[contents_folder_int2][contents_folder_int] =  entry-&gt;d_name;

        	cout &lt;&lt; path &lt;&lt; contents_folder[contents_folder_int2][contents_folder_int] &lt;&lt; endl;

        	contents_folder_int++;

    	}  // if (entry) {

	} while (entry);

	closedir(hdir);

}  // int func_folder_list() {

int func_write_folder_contents() {

	write_file.open(name_of_file.c_str(), ios_base::out);

  	if(!write_file) {

     	cout &lt;&lt; &quot;can not open file&quot;;
     	cout &lt;&lt; endl;
     	return -1;

  	}  // if(!dat_aus) {

	else {

		for(loop2=0;loop2&lt;contents_folder_int2;loop2++) {

			for(loop=0;loop&lt;contents_folder_int;loop++) {

				cout &lt;&lt; path &lt;&lt; contents_folder[loop2][loop] &lt;&lt; endl; 

				write_file &lt;&lt; path &lt;&lt; contents_folder[loop2][loop] &lt;&lt; endl; 

			}  // for(loop=0;loop&lt;=contents_folder_int;loop++) {

		}  // for(loop2=0;loop2&lt;=contents_folder_int2;loop2++) {

	}  // else {

}  // int func_write_folder_contents() {

int main() {

	func_folder_list();

	func_write_folder_contents();

	getchar();

	return 0;

}  // int main() {
</code></pre>
<p>Wie man vielleicht schon erkennen kann, soll das Programm den Ordnerinhalt auslesen und anschließend in eine Datei schreiben.</p>
<p>Selbstverständlich könnte man die Funktionen auch zusammenlegen, aber ich möchte das Array andersweitig nutzen.</p>
<p>Grüße</p>
<p>user_1992</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345694</guid><dc:creator><![CDATA[user_1992]]></dc:creator><pubDate>Wed, 14 Aug 2013 10:06:34 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 10:27:12 GMT]]></title><description><![CDATA[<p>Du könntest dir die meisten Leerzeilen sparen, dann sieht der Code schon mal besser aus.<br />
Ein Fan von den Kommentaren bei den Schleifen-Enden ('}') bin ich auch nicht, aber das ist ja dein Kaffee <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>Mein Frage zum Code, wird die Variable contents_folder_int2 irgendwann mal initialisiert?<br />
In folgender Zeile ist ihr ja noch gar kein Wert zugewiesen worden, was soll also hier drinnen stehen?</p>
<pre><code>contents_folder[contents_folder_int2][contents_folder_int] =  entry-&gt;d_name;
</code></pre>
<p>Edit: contents_folder_int wird auch nicht initialisiert, aber nach dem ersten Durchlauf inkrementiert..Fehler?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345705</guid><dc:creator><![CDATA[phanzy]]></dc:creator><pubDate>Wed, 14 Aug 2013 10:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 10:30:35 GMT]]></title><description><![CDATA[<p>Eigentlich war das so angedacht, das aus der Funktion &quot;func_folder_list()&quot; die einzelnen Ordnernamen in dem Array &quot;contents_folder&quot; abgespeichert werden. (return-befehl vergessen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> )</p>
<p>Und dann soll der Inhalt des Arays in die Datei abgespeichert werden (ohne, wie oben beschrieben, ohne &quot;übers Ziel hinaus zu schiessen&quot;)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>: Danke für den Hinweis hinsichtlich der globalen Variablen und des mehrdimensionale Arrays. Werde ich mir für meine zukünftigen Programme merken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345711</guid><dc:creator><![CDATA[user_1992]]></dc:creator><pubDate>Wed, 14 Aug 2013 10:30:35 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 10:40:48 GMT]]></title><description><![CDATA[<p>user_1992 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>: Danke für den Hinweis hinsichtlich der globalen Variablen und des mehrdimensionale Arrays. Werde ich mir für meine zukünftigen Programme merken.</p>
</blockquote>
<p>Der richtige Zeitpunkt zur Umstellung ist gestern. Du solltest dein aktuelles Programm auch umstellen. Mindestens die globalen Variablen müssen weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345714</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Aug 2013 10:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 10:59:32 GMT]]></title><description><![CDATA[<p>user_1992 schrieb:</p>
<blockquote>
<p>Eigentlich war das so angedacht, das aus der Funktion &quot;func_folder_list()&quot; die einzelnen Ordnernamen in dem Array &quot;contents_folder&quot; abgespeichert werden. (return-befehl vergessen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> )</p>
</blockquote>
<p><code>contents_folder</code> ist 2D, <code>d_name</code> jedoch nur eindimensional.</p>
<p>Wenn du (angenommen) die zwei Integer initialisierst.</p>
<pre><code>int contents_folder_int = 0;
int contents_folder_int2 = 0;
</code></pre>
<p>Würde der erste Durchlauf deiner Schleife in &quot;func_folder_list()&quot; so aussehen:</p>
<pre><code>contents_folder[0][0] = entry-&gt;d_name;
</code></pre>
<p>(Wobei die Nullen natürlich durch die Variablen ersetzt werden müssten, hier stehen sie nur zur Veranschaulichung.)</p>
<p>Dann hast du also in der zweiten Dimension des Arrays contents_folder[0]<strong>[0]</strong> den Namen des Verzeichnisses gespeichert.<br />
Dann inkrementierst du, aus [0][0] wird [0][1].<br />
In die <strong>[1]</strong> kommt der nächste entry-&gt;d_name;<br />
Du bräuchstest also gar keinen 2D-Array, eine Dimension reicht auch aus.<br />
Der reservierte Speicher für die zweite Dimension [100] ist also vergebens, der wird doch nie verwendet.</p>
<p>user_1992 schrieb:</p>
<blockquote>
<p>Und dann soll der Inhalt des Arays in die Datei abgespeichert werden (ohne, wie oben beschrieben, ohne &quot;übers Ziel hinaus zu schiessen&quot;)</p>
</blockquote>
<p>Dieser Teil des Programmes dürfte funktionieren, hald auf eine Dimension reduziert.</p>
<p>Hab deinen Code mal ein wenig überarbeitet, kann natürlich noch um einiges verbessert werden, muss aber weg.<br />
Nur mal um zu veranschaulichen, dass eine Dimension ausreicht.</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;dirent.h&gt;  // for folder list

using namespace std;

int folder_count = 0; 
string folder_list[1000]; 

void func_folder_list() {
    DIR *dir; 
    struct dirent *entry;  

    dir = opendir(&quot;c:/&quot;);
    if(!dir) return;

    while(entry = readdir(dir))
    {
        folder_list[folder_count] =  entry-&gt;d_name;       
        ++folder_count;                          
    }   
    closedir(dir);   
} 

void func_write_folder_contents() {

    string fileName = &quot;file.txt&quot;; 
    ofstream write_file;

    write_file.open(fileName.c_str(), ios_base::out);

    if(!write_file)
    {       
        cout &lt;&lt; &quot;can not open file&quot; &lt;&lt; endl;
        return;       
    }   

    for(int i = 0; i &lt;= folder_count; ++i)
    {          
        write_file &lt;&lt; path &lt;&lt; folder_list[i] &lt;&lt; endl;               
    }   
}

int main() 
{  
    func_folder_list();   
    func_write_folder_contents();   

    system(&quot;PAUSE&quot;);   
    return 0;   
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2345720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345720</guid><dc:creator><![CDATA[phanzy]]></dc:creator><pubDate>Wed, 14 Aug 2013 10:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionale Arrays Schleife on Wed, 14 Aug 2013 11:09:25 GMT]]></title><description><![CDATA[<p>Danke für den Code phanzy.</p>
<p>Der funktionert einwandfrei <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>
<p>Vielen Dank nochmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345722</guid><dc:creator><![CDATA[user_1992]]></dc:creator><pubDate>Wed, 14 Aug 2013 11:09:25 GMT</pubDate></item></channel></rss>