<?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[sprintf um &amp;quot;link zu erstellen&amp;quot;]]></title><description><![CDATA[<p>Hi. Ich programmiere die Grundlage eines Downloadmanagers, dabei brauche ich, um die eingegebenen Zahlen in den fertigen Link (string) umzuwandeln sprintf!</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">int TileGroup, ZoomStufe, Spalte, Zeile; //werden eingelesen
string sTG, sZS, sS, sZ; //sind die Zahlen in String umgewandelt

// Hier kommt der Teil der unnötig für das Problem ist...
//.......
//und hier die Umwandlung

sprintf( sTG, &quot;%d&quot;, TileGroup );  
cout &lt;&lt; sTG;

//Ausgegeben wird der String noch richtig, allerdings hab ich danach ein Stack
//Problem. Und beim Kompilieren bekomm ich auch:
//error C2664: 'sprintf': Konvertierung des Parameters 1 von 'std::string' in //'char *' nicht möglich
</code></pre>
<p>Ich glaube der Fehler ist nicht groß, kann mir jemand helfen?</p>
<p>mfg XaTrIxX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197522/sprintf-um-quot-link-zu-erstellen-quot</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 09:29:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197522.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Nov 2007 16:05:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 16:05:05 GMT]]></title><description><![CDATA[<p>Hi. Ich programmiere die Grundlage eines Downloadmanagers, dabei brauche ich, um die eingegebenen Zahlen in den fertigen Link (string) umzuwandeln sprintf!</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">int TileGroup, ZoomStufe, Spalte, Zeile; //werden eingelesen
string sTG, sZS, sS, sZ; //sind die Zahlen in String umgewandelt

// Hier kommt der Teil der unnötig für das Problem ist...
//.......
//und hier die Umwandlung

sprintf( sTG, &quot;%d&quot;, TileGroup );  
cout &lt;&lt; sTG;

//Ausgegeben wird der String noch richtig, allerdings hab ich danach ein Stack
//Problem. Und beim Kompilieren bekomm ich auch:
//error C2664: 'sprintf': Konvertierung des Parameters 1 von 'std::string' in //'char *' nicht möglich
</code></pre>
<p>Ich glaube der Fehler ist nicht groß, kann mir jemand helfen?</p>
<p>mfg XaTrIxX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401442</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Sun, 11 Nov 2007 16:05:05 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 16:16:47 GMT]]></title><description><![CDATA[<p>sprintf ist eine C-Funktion für char-Arrays.<br />
Benutzte stattdessen Stringstreams.<br />
<a href="http://www.cppreference.com/cppsstream/all.html" rel="nofollow">http://www.cppreference.com/cppsstream/all.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401452</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Sun, 11 Nov 2007 16:16:47 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 16:17:36 GMT]]></title><description><![CDATA[<p>Stichwort: std::stringstream</p>
<pre><code class="language-cpp">std::stringstream s;
s &lt;&lt; TileGroup;
sTG = s.str();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1401454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401454</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 11 Nov 2007 16:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 16:34:37 GMT]]></title><description><![CDATA[<p>Aja du willst also einen std::string in einen char* casten lassen? na dann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Das geht nicht!</p>
<pre><code class="language-cpp">std::vector&lt;char&gt; char_arr_tilegroup(std::numeric_limits&lt;int&gt;::digits() + 1); // 1 für Terminierungszeichen
std::sprintf(&amp;char_arr_tilegroup[0], &quot;%d&quot;, TileGroup);
std::string string_tilegroup = char_arr_tilegroup;
</code></pre>
<p>... aber das ist nen bissel rumgefummelt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Also solltest schon std::ostringstream nutzen ...</p>
<pre><code class="language-cpp">std::ostringstream ss;
ss &lt;&lt; TileGroup;
std::string string_tilegroup(ss.str());
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401469</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 11 Nov 2007 16:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 18:20:48 GMT]]></title><description><![CDATA[<p>ah cool danke für die hilfe, werd mir das heute noch anschauen, wenn's probleme gibt, sag ichs nochmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401537</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Sun, 11 Nov 2007 18:20:48 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 18:56:15 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>Aja du willst also einen std::string in einen char* casten lassen? na dann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Das geht nicht!</p>
</blockquote>
<p>Was ist mit std::string::c_str(); ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401556</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Sun, 11 Nov 2007 18:56:15 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 19:49:22 GMT]]></title><description><![CDATA[<p><a href="http://Storm.Xapek.de" rel="nofollow">Storm.Xapek.de</a> schrieb:</p>
<blockquote>
<p>(D)Evil schrieb:</p>
<blockquote>
<p>Aja du willst also einen std::string in einen char* casten lassen? na dann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Das geht nicht!</p>
</blockquote>
<p>Was ist mit std::string::c_str(); ?</p>
</blockquote>
<p>Das wäre dann ein const char*.</p>
<p>Um den zu verändern müsstest du das const wegcasten, aber das kann sehr schnell ins Auge gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401585</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 11 Nov 2007 19:49:22 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 20:33:18 GMT]]></title><description><![CDATA[<p>Ehm ja unteranderem weil std::string die Größe des Strings als Membervariable hat ... und die veränderst du ja so unter Umständen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Also von daher sollte man das lassen ... sonnst natürlich:</p>
<pre><code class="language-cpp">std::string tmp;
char* tmp_c(const_cast&lt;char*&gt;(tmp.c_str()));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1401609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401609</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 11 Nov 2007 20:33:18 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 21:41:37 GMT]]></title><description><![CDATA[<p>The-Kenny schrieb:</p>
<blockquote>
<p>Um den zu verändern müsstest du das const wegcasten, aber das kann sehr schnell ins Auge gehen.</p>
</blockquote>
<p>Auch mit dem Nachsatz bleibt es falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401639</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 11 Nov 2007 21:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Sun, 11 Nov 2007 22:14:34 GMT]]></title><description><![CDATA[<p>Danke! Das hat jetzt geklappt.</p>
<p>Gut ich habe das mit dem sstream geschafft!</p>
<p>Als nächstens möchte ich mir diese ganzen Links - und das ist erstmal mein Ziel - in eine .txt-Datei schreiben.</p>
<p>Ich arbeite hier natürlich mit &lt;fsream&gt;, eh klar.</p>
<p>Das ist jetzt ja ein Downloadmanager, sprich ich muss jetzt die ganzen Zahlen durchgehen:</p>
<pre><code>Spalte 1 Zeile 1
Spalte 1 Zeile 2
Spalte 1 Zeile 3
Spalte 2 Zeile 1
Spalte 2 Zeile 2
Spalte 2 Zeile 3
...
</code></pre>
<p>Muss ich jetzt bei jedem Schleifendurchlauf mit dem sstream die Zeile/Spalte umwandeln und dann in die .txt schreiben?</p>
<p>Mein Problem wird glaub ich sein, wenn ich nach jedem Schleifendurchlauf was zum sstream einfügen will, hängt sich das an, anstatt zu überschreiben:</p>
<pre><code class="language-cpp">std::stringstream a;
a &lt;&lt; TileGroup;
sTG = a.str();
</code></pre>
<p>Dann wird beim 5. Schleifendurchlauf 12345 anstatt 5 drinnenstehen...<br />
Muss ich zum schluss a=&quot;&quot;; zuweisen, oder soll ich gleich irgendeinen anderen Weg verfolgen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401650</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Sun, 11 Nov 2007 22:14:34 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Mon, 12 Nov 2007 06:42:25 GMT]]></title><description><![CDATA[<p>Da müsstest du zwischendurch den Stream wieder entleeren - mit <code>a.str(&quot;&quot;);</code> . (oder du packst den Stringstream lokal in die Schleife, dann wird er bei jedem Durchlauf neu (leer) angelegt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401693</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 12 Nov 2007 06:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Mon, 12 Nov 2007 19:30:03 GMT]]></title><description><![CDATA[<p>so, bin jetzt um einiges weiter, hab das jetzt mal auf die Schnelle programmiert, hab jetzt aber 2 kleine Probleme: beim schreiben kann ich das ja nicht binary machen, weil man muss es ja lesen können, und 2. hab ich einen Kompilierfehler, hier mal der wichtige Codeteil:</p>
<pre><code class="language-cpp">ofstream schreiben;

		for(int i=0; i&lt;maxSpalte; i++)
		{
			a &lt;&lt; Spalte;
			sS = a.str();

			for(int j=0; j&lt;maxZeile; j++)
			{
			a.str(&quot;&quot;);
			a &lt;&lt; Zeile;
			sZ = a.str();
			a.str(&quot;&quot;);

			fertigerlink = fertigerlink = link + &quot;/TileGroup&quot; + sTG + &quot;/&quot; + sZS + &quot;-&quot; + sS + &quot;-&quot; + sZ;

				schreiben.open(&quot;Links.txt&quot;, ios::binary|ios::out|ios::app);
				if(!schreiben)
				{
			cout &lt;&lt; &quot;Die Datei konnte nicht geöffnet werden! \n&quot;;
				}
				else
				{	
			schreiben.write(fertigerlink, sizeof(fertigerlink));
			schreiben.close();
			schreiben.clear();
				}
			}
		}
</code></pre>
<p>Kompilierfehler:</p>
<pre><code>'std::basic_ostream&lt;_Elem,_Traits&gt;::write': Konvertierung des Parameters 1 von 'std::string' in 'const char *' nicht möglich
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1402079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402079</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Mon, 12 Nov 2007 19:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf um &amp;quot;link zu erstellen&amp;quot; on Mon, 12 Nov 2007 21:26:38 GMT]]></title><description><![CDATA[<p>Warum willst du eigtl. binary_mode haben?</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void write_string_binary(std::basic_string&lt;T&gt; const&amp; str, std::basic_ostream&lt;T&gt;&amp; out)
{
    const std::size_t size(str.size() + 1);
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;size), sizeof(std::size_t));
    out.write(str.c_str(), sizeof(T) * size);
}

int main()
{
    std::ofstream file_stream(&quot;links.dat&quot;, std::ios::binary);
    if (!file_stream) { std::cerr &lt;&lt; &quot;FEHLER: Datei konnte nicht geöffnet werden!&quot; &lt;&lt; std::endl; return false; }
    write_string_binary&lt;char&gt;(&quot;Das ist mein String&quot;, file_stream);
}
</code></pre>
<p>...</p>
<p>const std::size_t size</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402136</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 12 Nov 2007 21:26:38 GMT</pubDate></item></channel></rss>