<?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[Problem beim Daten auslesen]]></title><description><![CDATA[<p>Hallo Freunde, folgendes Problem, ich will mit diesem Programm folgende .txt auslesen. Ich interessiere mich jeweils nur für die Zahlenwerte. Die ersten 6 Zahlen (wenn keine Zahl hinter dem Text steht also 0) aollen in den vector Grundeinstellungen. Bei dem 7.Wert (Anzahl der Laser), soll die Anzahl mit 7 (soviel Daten sind pro Laser) genommen werden und damit ein neuer vector &quot;dynamisch&quot; erzeugt werden, da ist auch schon mein Prob, des macht er irgendwie nicht. Kann mir da jemand helfen, bzw. eine bessere idee nennen? Also kurz gesagt ich will aus Anzahl Laser einen dynamischen vector erzeugen wo dann hintereinander die Daten reinkommen.</p>
<pre><code class="language-cpp">#include &lt;string&gt; 
#include &lt;fstream&gt; 
#include &lt;sstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt;

using namespace std; 

int a;

int main() 
{ 
	vector&lt;int&gt;Grundeinstellungen(6);
	vector&lt;int&gt;Laserdaten;
	int i=0;            int index = 0; 
    ifstream stream; 
    stream.open(&quot;eingabedatei.txt&quot;); 
    if ( stream.is_open() ) 
    { 
        while ( !stream.eof() ) 
        {
			string buffer; 
            getline(stream, buffer); 
            stringstream ss; 
            ss &lt;&lt; buffer; 
            string value; 

            ss &gt;&gt; value; 
            ss &gt;&gt; index; 
			if (i&lt;6)
			{
			Grundeinstellungen.at(i)=index;
			cout  &lt;&lt; &quot; Nr.1 &quot; &lt;&lt; Grundeinstellungen.at(i) &lt;&lt; endl; 
			i++;
			}
			if (i=7)
			{
			Laserdaten.resize(index*7);
			cout  &lt;&lt; &quot; Es wurde ein Speicher mit  &quot; &lt;&lt; (index*7) &lt;&lt; endl; 
			i++;
			}
			if (i&gt;7)
			{
			Laserdaten.at(i-8)=index;
			cout  &lt;&lt; &quot; Nr.1 &quot; &lt;&lt; Laserdaten.at(i-8) &lt;&lt; endl; 
			i++;
			}

        } 
    } 
    else  
	{ 
        cerr &lt;&lt; &quot;Datei existiert nicht&quot; &lt;&lt; std::endl; 
    }

	cin&gt;&gt;a;
}
</code></pre>
<p>TXT-DATEI!</p>
<pre><code class="language-cpp">Feldabmessung
	X= 600;
	Y= 600;
Autoposition
	X= 00;
	Y= 300;
AnzahlderLaser= 3;
Laser L1	
	XPOS1= 600;
	YPOS1= 0;
	Umin1= 1000;
	NULLPos1= -20;
	NullOn1= 20;
	RotOn1= 2;
Laser L2
	XPOS2= 0;
	YPOS2= 0;
	Umin2= 2000;
	NULLPos2= -20;
	NullOn2= 20;
	RotOn2= 2;
Laser L3
	XPOS3= 300;
	YPOS3= 0;
	Umin3= 3000;
	NULLPos3= -20;
	NullOn3= 20;
	RotOn3= 2;
Laser L4
	XPOS3= ;
	YPOS3= ;
	Umin3= ;
	NULLPos3= ;
	NullOn3= ;
	RotOn3= ;
</code></pre>
<p>Danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252775/problem-beim-daten-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 05:43:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252775.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Oct 2009 10:08:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim Daten auslesen on Sat, 24 Oct 2009 10:09:29 GMT]]></title><description><![CDATA[<p>Hallo Freunde, folgendes Problem, ich will mit diesem Programm folgende .txt auslesen. Ich interessiere mich jeweils nur für die Zahlenwerte. Die ersten 6 Zahlen (wenn keine Zahl hinter dem Text steht also 0) aollen in den vector Grundeinstellungen. Bei dem 7.Wert (Anzahl der Laser), soll die Anzahl mit 7 (soviel Daten sind pro Laser) genommen werden und damit ein neuer vector &quot;dynamisch&quot; erzeugt werden, da ist auch schon mein Prob, des macht er irgendwie nicht. Kann mir da jemand helfen, bzw. eine bessere idee nennen? Also kurz gesagt ich will aus Anzahl Laser einen dynamischen vector erzeugen wo dann hintereinander die Daten reinkommen.</p>
<pre><code class="language-cpp">#include &lt;string&gt; 
#include &lt;fstream&gt; 
#include &lt;sstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt;

using namespace std; 

int a;

int main() 
{ 
	vector&lt;int&gt;Grundeinstellungen(6);
	vector&lt;int&gt;Laserdaten;
	int i=0;            int index = 0; 
    ifstream stream; 
    stream.open(&quot;eingabedatei.txt&quot;); 
    if ( stream.is_open() ) 
    { 
        while ( !stream.eof() ) 
        {
			string buffer; 
            getline(stream, buffer); 
            stringstream ss; 
            ss &lt;&lt; buffer; 
            string value; 

            ss &gt;&gt; value; 
            ss &gt;&gt; index; 
			if (i&lt;6)
			{
			Grundeinstellungen.at(i)=index;
			cout  &lt;&lt; &quot; Nr.1 &quot; &lt;&lt; Grundeinstellungen.at(i) &lt;&lt; endl; 
			i++;
			}
			if (i=7)
			{
			Laserdaten.resize(index*7);
			cout  &lt;&lt; &quot; Es wurde ein Speicher mit  &quot; &lt;&lt; (index*7) &lt;&lt; endl; 
			i++;
			}
			if (i&gt;7)
			{
			Laserdaten.at(i-8)=index;
			cout  &lt;&lt; &quot; Nr.1 &quot; &lt;&lt; Laserdaten.at(i-8) &lt;&lt; endl; 
			i++;
			}

        } 
    } 
    else  
	{ 
        cerr &lt;&lt; &quot;Datei existiert nicht&quot; &lt;&lt; std::endl; 
    }

	cin&gt;&gt;a;
}
</code></pre>
<p>TXT-DATEI!</p>
<pre><code class="language-cpp">Feldabmessung
	X= 600;
	Y= 600;
Autoposition
	X= 00;
	Y= 300;
AnzahlderLaser= 3;
Laser L1	
	XPOS1= 600;
	YPOS1= 0;
	Umin1= 1000;
	NULLPos1= -20;
	NullOn1= 20;
	RotOn1= 2;
Laser L2
	XPOS2= 0;
	YPOS2= 0;
	Umin2= 2000;
	NULLPos2= -20;
	NullOn2= 20;
	RotOn2= 2;
Laser L3
	XPOS3= 300;
	YPOS3= 0;
	Umin3= 3000;
	NULLPos3= -20;
	NullOn3= 20;
	RotOn3= 2;
Laser L4
	XPOS3= ;
	YPOS3= ;
	Umin3= ;
	NULLPos3= ;
	NullOn3= ;
	RotOn3= ;
</code></pre>
<p>Danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1797394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1797394</guid><dc:creator><![CDATA[Sweethome85]]></dc:creator><pubDate>Sat, 24 Oct 2009 10:09:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Daten auslesen on Sat, 24 Oct 2009 12:04:59 GMT]]></title><description><![CDATA[<p>Ein paar Sachen die mir auffallen:</p>
<p>Bei den Zeilen, in denen keine Zahl steht, bekommst du ein Problem. Da deine Fehlerbeschreibung bloß &quot;macht er nicht&quot; ist, kann ich aber nicht sagen, ob dies dein Problem ist.</p>
<p>Du beachtest gar nicht, wieviele Laserdaten da sind, sondern liest alles bis zum Ende der Datei. Daher greifst du gegen Ende auf Laserdatenindizes zu, die gar nicht existieren -&gt; Auch ein Problem, falls dein Programm überhaupt soweit kommt.</p>
<p>push_back ist dir anscheinend unbekannt? Dies würde einiges einfacher machen.</p>
<p>Klassen sind dir anscheinend auch unbekannt? Falls unbekannt: Das ist jetzt ein bisschen viel zu lernen für ein kleines Leseprogramm. Falls bekannt: Mach doch eine Datenklasse. Damit bist du viel flexibler und kannst die Daten später besser weiterarbeiten. Am besten noch mit überladenen Streamoperatoren, falls du Operatorüberladung kennst.</p>
<p>Deine ganzen hardcodierten Indizes kommen mir irgendwie falsch vor. Ich will jetzt aber nicht alles im Kopf nachrechnen und den Programmablauf vollständig nachvollziehen. Das machst besser DU mit einem Debugger. Dann siehst du genau was wo schief läuft und kannst mehr sagen als 'macht er irgendwie nicht'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1797444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1797444</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 24 Oct 2009 12:04:59 GMT</pubDate></item></channel></rss>