<?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[Programm stürzt nach Algorithmus ab]]></title><description><![CDATA[<p>Hi,<br />
ich hab ein Programm geschrieben was int-werte Zeilenweise aus einer Datei einliest und sie in ein array speichert was ich dynamisch mit &lt;vector&gt; erzeugt hab.<br />
dieses array will ich mit dem INSERTION-SORT Algorithmus sortieren,aber es stürzt wärend der Laufzeit immer ab.<br />
Saß jetzt schon ne ganze weile dran finde dort keinen fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> .<br />
Bitte um hilfe,stell ma den code rein.<br />
MFG Steve</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using namespace System;
using namespace std;

int main()
{

ifstream quelle;
string quelldateiname;
cout &lt;&lt; &quot;Quelldatei?...(Kompletten Pfad angeben!!)&quot;&lt;&lt;endl;
cin &gt;&gt; quelldateiname;

quelle.open(quelldateiname.c_str(), ios::in);

if(!quelle)
	{
	cerr &lt;&lt; quelldateiname &lt;&lt; &quot;kann nicht geoeffnet werden!&quot; &lt;&lt;endl;
	exit(-1);
	}

cout &lt;&lt; &quot;Name der zu erstellenden Zieldatei?...&quot;&lt;&lt;endl;
string zieldateiname;
cin &gt;&gt; zieldateiname;
ofstream ziel(zieldateiname.c_str(),ios_base::out|ios_base::in|ios_base::app);

if(!ziel)
	{
	cerr &lt;&lt; zieldateiname &lt;&lt;&quot;kann nicht geoeffnet werden!&quot;&lt;&lt;endl;
	exit(-1);
	}

//erzeugung eines dynamischen arrays mit &quot;vector&quot;
vector&lt;int&gt; feld;
int value;
while(quelle &gt;&gt; value)
	{
	feld.push_back(value);
	}

//INSERTION-SORT
//zuerst den kleinsten wert auf feld[0] setzten

int min = 0;
int x =  0;
unsigned int k,i,j,h;

for(k=1 ; k &lt; feld.size() ; k++)
	if(feld[k] &lt; feld[min])
		min = k;

//werte austauschen
x = feld[0];
feld[0] = feld[min];
feld[min]= x;

//eigentlicher INSERTION-SORT Algorithmus
int key;
for(j =2 ; j &lt;= feld.size() ; j++)
	{
	key = feld[j];
	i= j-1;
	while( i&gt; 0 &amp;&amp; feld[i] &gt; key)
		{
		feld[i+1] = feld[i];
		i--;
		}
		feld[i+1] = key;
	}

//for-schleife um array in zieldatei zu schreiben
for(h = 0; h &lt;= feld.size(); h++)
	{
	feld[k] &gt;&gt; ziel;
	}

quelle.close();
ziel.close();

cout &lt;&lt;&quot;...Zeahlvorgang abgeschlossen...&quot;&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/239259/programm-stürzt-nach-algorithmus-ab</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 13:15:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239259.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Apr 2009 13:40:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 13:40:29 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich hab ein Programm geschrieben was int-werte Zeilenweise aus einer Datei einliest und sie in ein array speichert was ich dynamisch mit &lt;vector&gt; erzeugt hab.<br />
dieses array will ich mit dem INSERTION-SORT Algorithmus sortieren,aber es stürzt wärend der Laufzeit immer ab.<br />
Saß jetzt schon ne ganze weile dran finde dort keinen fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> .<br />
Bitte um hilfe,stell ma den code rein.<br />
MFG Steve</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using namespace System;
using namespace std;

int main()
{

ifstream quelle;
string quelldateiname;
cout &lt;&lt; &quot;Quelldatei?...(Kompletten Pfad angeben!!)&quot;&lt;&lt;endl;
cin &gt;&gt; quelldateiname;

quelle.open(quelldateiname.c_str(), ios::in);

if(!quelle)
	{
	cerr &lt;&lt; quelldateiname &lt;&lt; &quot;kann nicht geoeffnet werden!&quot; &lt;&lt;endl;
	exit(-1);
	}

cout &lt;&lt; &quot;Name der zu erstellenden Zieldatei?...&quot;&lt;&lt;endl;
string zieldateiname;
cin &gt;&gt; zieldateiname;
ofstream ziel(zieldateiname.c_str(),ios_base::out|ios_base::in|ios_base::app);

if(!ziel)
	{
	cerr &lt;&lt; zieldateiname &lt;&lt;&quot;kann nicht geoeffnet werden!&quot;&lt;&lt;endl;
	exit(-1);
	}

//erzeugung eines dynamischen arrays mit &quot;vector&quot;
vector&lt;int&gt; feld;
int value;
while(quelle &gt;&gt; value)
	{
	feld.push_back(value);
	}

//INSERTION-SORT
//zuerst den kleinsten wert auf feld[0] setzten

int min = 0;
int x =  0;
unsigned int k,i,j,h;

for(k=1 ; k &lt; feld.size() ; k++)
	if(feld[k] &lt; feld[min])
		min = k;

//werte austauschen
x = feld[0];
feld[0] = feld[min];
feld[min]= x;

//eigentlicher INSERTION-SORT Algorithmus
int key;
for(j =2 ; j &lt;= feld.size() ; j++)
	{
	key = feld[j];
	i= j-1;
	while( i&gt; 0 &amp;&amp; feld[i] &gt; key)
		{
		feld[i+1] = feld[i];
		i--;
		}
		feld[i+1] = key;
	}

//for-schleife um array in zieldatei zu schreiben
for(h = 0; h &lt;= feld.size(); h++)
	{
	feld[k] &gt;&gt; ziel;
	}

quelle.close();
ziel.close();

cout &lt;&lt;&quot;...Zeahlvorgang abgeschlossen...&quot;&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1699159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699159</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Tue, 21 Apr 2009 13:40:29 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 13:46:17 GMT]]></title><description><![CDATA[<p>An welcher Stelle stürzt es ab und mit welcher Fehlermeldung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699162</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 21 Apr 2009 13:46:17 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 13:46:49 GMT]]></title><description><![CDATA[<p>Also am unteren Ende fehlt bei deinem Queletxt die } von main, hoffe da haste nich noch was anderes beim kopieren evrgessen. Ich nehme an dein programm geht einfach aus? Schreib mal cin.get(); 2x unter dein letztes cout.</p>
<p>Falls es das nicht ist wäre eine genauere Beschreibung hilfreich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699163</guid><dc:creator><![CDATA[Xebov]]></dc:creator><pubDate>Tue, 21 Apr 2009 13:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 13:59:03 GMT]]></title><description><![CDATA[<p>In Zeile 66 und 77 läuft die Schleife über die Feldgrenzen hinaus.<br />
falsch:</p>
<pre><code class="language-cpp">for(j =2 ; j &lt;= feld.size() ; j++)
</code></pre>
<p>richtig:</p>
<pre><code class="language-cpp">for(j =2 ; j &lt; feld.size() ; j++)
</code></pre>
<p>Edit: meine Zeile 66 u. <strong>79</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699167</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Tue, 21 Apr 2009 13:59:03 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 14:45:16 GMT]]></title><description><![CDATA[<p>Hi,<br />
erstma danke an alle.....<br />
Prog funzt jetzt!<br />
@Xebov....die } hab ich nur beim Kpieren vergessen <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 />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18651">@MIP</a>.... du hattest recht da lag der Fehler,klar das es da abstürtzt wenn die Array Grenzen verletzt werden...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Gruß steve</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699189</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Tue, 21 Apr 2009 14:45:16 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 14:54:22 GMT]]></title><description><![CDATA[<p>Wenn du das ganze mit der std::vector::at(int element)-Methode machst wird dir eine std::out_of_range exception geworfen, die du evtl. schneller gefunden hättest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699192</guid><dc:creator><![CDATA[Cox]]></dc:creator><pubDate>Tue, 21 Apr 2009 14:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 15:08:03 GMT]]></title><description><![CDATA[<p>Nachtrag:<br />
Eigentlich nicht nur eventuell, normalerweise sogar ziemlich sicher.<br />
Weiß ja nicht wie das unter windows ist, aber über den Index operator bekomm ich in der Bash-Konsole hier ein simples</p>
<blockquote>
<p>Segmentation Fault</p>
</blockquote>
<p>ausgespuckt, mit dem at ein ganzes</p>
<blockquote>
<p>terminate called after throwing an instance of 'std::out_of_range'<br />
what(): vector::_M_range_check<br />
Aborted&quot;</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1699206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699206</guid><dc:creator><![CDATA[Cox]]></dc:creator><pubDate>Tue, 21 Apr 2009 15:08:03 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Tue, 21 Apr 2009 15:31:22 GMT]]></title><description><![CDATA[<p>Hy,</p>
<p>Oder du nimmst gleich Iteratoren, dann würde dir nen 0-Pointer sowieso alles kaputt machen wenn du das Ende falsch abprüfst <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="😉"
    /> Wäre etwas offentsichtlicher.</p>
<p>Mfg Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699223</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Tue, 21 Apr 2009 15:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Wed, 22 Apr 2009 15:48:17 GMT]]></title><description><![CDATA[<p>hi,<br />
und zwar wollte ich das programm jetzt unter linux compilieren und am anfang 2 komandozeilenparameter mit übergeben.<br />
Aber wieder stürzt es ab <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="😞"
    /><br />
Hab es schon geändert weil ja manche Befehle in Linux nicht so recht funktionieren.<br />
Bitte um hilfe,hier der Code:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc,char *argv[])
{
char *input;
char *output;
char in[10]=&quot;input.txt&quot;;
char out[11]=&quot;output.txt&quot;;
//test ob parameter übergeben werden
if(argc &gt; 0)
	{
	input = argv[1];
	output = argv[2];
	}
else
	{
	input = in;
	output = out;
	}

fstream quelle;
quelle.open(input, ios::in);

fstream ziel(output, ios::out);

//erzeugung eines dynamischen arrays mit &quot;vector&quot;
vector&lt;int&gt; feld;
int value;
while(quelle &gt;&gt; value)
	{
	feld.push_back(value);
	}

//INSERTION-SORT

unsigned int k,i,j;

//eigentlicher INSERTION-SORT Algorithmus
int key;
for(j =1 ; j &lt; feld.size() ; j++)
	{
	key = feld[j];
	i= j-1;
	while( i&gt; 0 &amp;&amp; feld[i] &gt; key)
		{
		feld[i+1] = feld[i];
		i--;
		}
		feld[i+1] = key;
	}

//for-schleife die sortiertes array in datei schreibt
for(k=0 ; k &lt; feld.size(); k++)
ziel &lt;&lt; feld[k] &lt;&lt; endl;

//geöffnete datein schließen
quelle.close();
ziel.close();

}
</code></pre>
<p>MFG Steve</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699757</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Wed, 22 Apr 2009 15:48:17 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt nach Algorithmus ab on Wed, 22 Apr 2009 16:35:36 GMT]]></title><description><![CDATA[<blockquote>
<p>Hab es schon geändert weil ja manche Befehle in Linux nicht so recht funktionieren.</p>
</blockquote>
<p>lol?! bzgl C++ bestimmt nicht...</p>
<pre><code class="language-cpp">char *input;
char *output;
char in[10]=&quot;input.txt&quot;;
char out[11]=&quot;output.txt&quot;;
//test ob parameter übergeben werden
if(argc &gt; 0)
    {
    input = argv[1];
    output = argv[2];
    }
else
    {
    input = in;
    output = out;
    }
</code></pre>
<p>das ist hässlich und falsch...</p>
<pre><code class="language-cpp">char *input;
char *output;

const char in[]=&quot;input.txt&quot;; //besser wäre aber const std::string und dann
const char out[]=&quot;output.txt&quot;; //input = in.c_str(); zu nutzen - aber hier gehts auch so klar...
</code></pre>
<p>oder willst du jedesmal die zeichen selbst zählen, wenn du was änderst?</p>
<pre><code class="language-cpp">if(argc &gt; 0)
</code></pre>
<p>ist immer größer 0 (mind. 1, da argv[0] die working directory ist)</p>
<pre><code class="language-cpp">char *input;
char *output;

if (argc &gt;= 3)
{
    input = argv[1];
    output = argv[2];
}
else
{
    input = in;
    output = out;
}
</code></pre>
<p>bb</p>
<p>PS: Debugger!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699784</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 22 Apr 2009 16:35:36 GMT</pubDate></item></channel></rss>