<?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[push_back Funktion funktionniert nicht]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem, ich habe mir eine Struktur gebaut die wie folgt aussieht:</p>
<pre><code class="language-cpp">struct data{
   int type;
   int id;
   std::vector&lt;std::string&gt; scalar_name
};

data RtrnData;
</code></pre>
<p>Ich habe auch die Include-Dateien &lt;vector&gt;, &lt;iostream&gt;, &lt;string&gt; eingefügt.<br />
Doch wenn ich nun in meinen Programm die Push_back Funktion benutze will, passiert gar nix, er schreibt nix in meinen Vector.</p>
<pre><code class="language-cpp">RtrnData.scalar_value.push_back(&quot;test&quot;); &lt;- das wird nicht korrekt ausgeführt da in meinem Vector immer NULL steht aber nicht test
</code></pre>
<p>Vielen Dank für ihre Hilfe</p>
<p>Claude</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268445/push_back-funktion-funktionniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 20:18:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268445.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jun 2010 09:54:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 09:54:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem, ich habe mir eine Struktur gebaut die wie folgt aussieht:</p>
<pre><code class="language-cpp">struct data{
   int type;
   int id;
   std::vector&lt;std::string&gt; scalar_name
};

data RtrnData;
</code></pre>
<p>Ich habe auch die Include-Dateien &lt;vector&gt;, &lt;iostream&gt;, &lt;string&gt; eingefügt.<br />
Doch wenn ich nun in meinen Programm die Push_back Funktion benutze will, passiert gar nix, er schreibt nix in meinen Vector.</p>
<pre><code class="language-cpp">RtrnData.scalar_value.push_back(&quot;test&quot;); &lt;- das wird nicht korrekt ausgeführt da in meinem Vector immer NULL steht aber nicht test
</code></pre>
<p>Vielen Dank für ihre Hilfe</p>
<p>Claude</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909365</guid><dc:creator><![CDATA[ClaudeG]]></dc:creator><pubDate>Wed, 09 Jun 2010 09:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:12:30 GMT]]></title><description><![CDATA[<p>Und du stellst wie fest, dass da NULL steht?</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909376</guid><dc:creator><![CDATA[manii66]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:13:04 GMT]]></title><description><![CDATA[<p>Heißt der Vector jetzt scalar_name oder scalar_value?</p>
<p>ClaudeG schrieb:</p>
<blockquote>
<p>er schreibt nix in meinen Vector.</p>
</blockquote>
<p>Das folgerst du woraus?</p>
<p>ClaudeG schrieb:</p>
<blockquote>
<p>da in meinem Vector immer NULL steht</p>
</blockquote>
<p>Das stellst du wie fest?</p>
<p>Zeig doch mal ein kompilierbares Minimalbeispiel, das den Fehler reproduziert. Vermutlich ist das Problem eher beim Ausgeben des Vectorinhalts als beim Einfügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909377</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:16:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct data
{
	int type;
	int id;
	std::vector&lt;std::string&gt; scalar_name;
};
...

int main()
{
	data RtrnData;
	RtrnData.scalar_name.push_back(&quot;test&quot;);

	vector&lt;string&gt;::iterator it;
	for ( it=RtrnData.scalar_name.begin() ; it &lt; RtrnData.scalar_name.end(); ++it )
		cout &lt;&lt; &quot; &quot; &lt;&lt; *it;

	return 0;
}
</code></pre>
<p>liefert sicherlich 'test'. Was ist bei dir anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909381</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:17:03 GMT]]></title><description><![CDATA[<p>Im Vector <strong>kann</strong> nicht NULL stehen, denn NULL ist ein Zeiger. Im Vector speicherst du aber std::string und keine Zeiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909382</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:41:50 GMT]]></title><description><![CDATA[<p>Also ich habe die push_back funktion genutzt, und dann wollte ich mit printf den Inhalt meines Vector anzeigen, dachte dass das Funktionniert da es sich um ein string handelt und somit printf(&quot;%s&quot;); funktionieren müsste, doch dann bekomme ich als antwort &lt;NULL&gt;, darum habe ich angenommen dass im Vector sich nichts befindet denn in meinen Programm benutz ich die Funktion um die Länge des Vectors zu bekommen da bekomme ich immer null als Resultat so muss etwas nicht stimmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909400</guid><dc:creator><![CDATA[ClaudeG]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:44:03 GMT]]></title><description><![CDATA[<p>ClaudeG schrieb:</p>
<blockquote>
<p>Also ich habe die push_back funktion genutzt, und dann wollte ich mit printf den Inhalt meines Vector anzeigen, dachte dass das Funktionniert da es sich um ein string handelt und somit printf(&quot;%s&quot;);</p>
</blockquote>
<p>%s erwartet einen char-Zeiger. Zeig doch bitte mal den Code, da scheint so einiges schief zu laufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909402</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:44:35 GMT]]></title><description><![CDATA[<p>printf stammt noch aus C Zeiten.. Damals gab es keine std::string-s. Bei %s musst du einen C-String (char-Zeiger) übergeben, keinen std::string.</p>
<p>Wegen genau solchen Sachen soltest du printf nicht nutzen - es ist nicht Typsicher. Du übergibst einen vollkommen falchen Typ und merkst es nicht einmal.</p>
<p>std::cout &lt;&lt; std::string(&quot;Hello World!&quot;) &lt;&lt; std::endl;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909404</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 10:45:40 GMT]]></title><description><![CDATA[<p>ClaudeG schrieb:</p>
<blockquote>
<p>Also ich habe die push_back funktion genutzt, und dann wollte ich mit printf den Inhalt meines Vector anzeigen, dachte dass das Funktionniert da es sich um ein string handelt und somit printf(&quot;%s&quot;); funktionieren müsste, doch dann bekomme ich als antwort &lt;NULL&gt;, darum habe ich angenommen dass im Vector sich nichts befindet denn in meinen Programm benutz ich die Funktion um die Länge des Vectors zu bekommen da bekomme ich immer null als Resultat so muss etwas nicht stimmen</p>
</blockquote>
<p>Zeig doch mal bitte ein richtiges Beispiel aus deinem Code.<br />
Vermutlich hast du printf einen falschen Parameter übergeben.<br />
Welche Funktion um die Länge des vectors zu bestimmen benutzt du denn? size() wäre die richtige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909405</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Wed, 09 Jun 2010 10:45:40 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 11:15:05 GMT]]></title><description><![CDATA[<p>Also hier ein Auschnitt aus meinen Programm:</p>
<pre><code class="language-cpp">// fin ist ein std::ifstream
fin.open(filename, std::ios::in);

	char *ch_ptr;

        char scalar_names[256];
	// names in one line
	fin.getline(scalar_names, 255);

	// first token
#ifndef WIN32
    ch_ptr = strtok(scalar_names,&quot;# &quot;);
#else
    char * next_token;
    ch_ptr = strtok_s(scalar_names,&quot;# &quot;, &amp;next_token);
#endif

		// insert into vector
		if ( ch_ptr != NULL )
		  RtrnData.scalar_name.push_back(std::string(ch_ptr));

                   // den ch_ptr hat den richtigen Wert, den printf(&quot;%s&quot;, 
                      ch_ptr); zeigt mir ihn an.
#endif
	 // indicate scalar value to be displayed
	 int i = 0;
	 int found = 0;
	 std::string scalar_display;
	 unsigned long scalar_display_long;
	 while ( i &lt; RtrnData.scalar_name.size() )
	 {
                 // Rechnung die noch gemacht werden müssen, sowie auch noch
                    weitere Parameter aus der Datei auslesen, doch in diesen 
                    Loop komme ich nie
         }
</code></pre>
<p>Ich hoffe es ist jetzt klarer, denn ich kann keinen Syntax Fehler erkennen, denn die Datei bekomme ich ja auch gebaut! Aber die Ausführung klappt nicht wie ich will</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909414</guid><dc:creator><![CDATA[ClaudeG]]></dc:creator><pubDate>Wed, 09 Jun 2010 11:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to push_back Funktion funktionniert nicht on Wed, 09 Jun 2010 11:21:04 GMT]]></title><description><![CDATA[<p>Kannst du bitte den Haken bei &quot;BBCode in diesem Beitrag deaktivieren&quot; entfernen?</p>
<p>ClaudeG schrieb:</p>
<blockquote>
<p>Also hier ein Auschnitt aus meinen Programm:</p>
<pre><code class="language-cpp">// fin ist ein std::ifstream
fin.open(filename, std::ios::in);

	char *ch_ptr;

        char scalar_names[256];
	// names in one line
	fin.getline(scalar_names, 255);

	// first token
#ifndef WIN32
    ch_ptr = strtok(scalar_names,&quot;# &quot;);
#else
    char * next_token;
    ch_ptr = strtok_s(scalar_names,&quot;# &quot;, &amp;next_token);
#endif

		// insert into vector
		if ( ch_ptr != NULL )
		  RtrnData.scalar_name.push_back(std::string(ch_ptr));

                   // den ch_ptr hat den richtigen Wert, den printf(&quot;%s&quot;, 
                      ch_ptr); zeigt mir ihn an.
#endif
	 // indicate scalar value to be displayed
	 int i = 0;
	 int found = 0;
	 std::string scalar_display;
	 unsigned long scalar_display_long;
	 while ( i &lt; RtrnData.scalar_name.size() )
	 {
                 // Rechnung die noch gemacht werden müssen, sowie auch noch
                    weitere Parameter aus der Datei auslesen, doch in diesen 
                    Loop komme ich nie
         }
</code></pre>
<p>Ich hoffe es ist jetzt klarer, denn ich kann keinen Syntax Fehler erkennen, denn die Datei bekomme ich ja auch gebaut! Aber die Ausführung klappt nicht wie ich will</p>
</blockquote>
<p>und kannst du bitte compilier-baren quellcode posten?<br />
oder zumindest quellcode, wo man versteht, was du machen möchtest (als tip: zähl mal die #endifs im vergleich zu deinen #ifs / #ifdefs / #ifndefs)</p>
<p>die einrückung sieht auch so aus, als ob du aus verschiedenen funktionen einfach nur blind rauskopiert hättest und dich jetzt wunderst...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909418</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 09 Jun 2010 11:21:04 GMT</pubDate></item></channel></rss>