<?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[fehlersuche itoa();, grundlagen]]></title><description><![CDATA[<p>hallo<br />
kann mir jedmand sagen wie man unten stehendes source code zum laufen bringt?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;libsocket.h&gt;
#include &lt;pthreads.h&gt;
using namespace std;
using namespace Network;

int main( int argc, char * argv[] )
{
  int i = ((50*256+66)*256) *256+52;
  char c1[9];
  c1 = itoa(i, c1, 10);
  char c2[4] = 'a';
  memcpy((int*)c2,(int*)i,4);
  cout &lt;&lt; c2 &lt;&lt;endl;
  string s1(c2);
  int j = htonl(i);
  string s2;
  return 0;
}
</code></pre>
<p>zb: was ist an</p>
<pre><code class="language-cpp">c1 = itoa(i, c1, 10);
</code></pre>
<p>falsch?</p>
<p>so sehen jedenfalls beispiele bei einem programmier test aus und dann heissts halt fehlersuche und korrektur und fragen dazu beantworten, da der test nun schon vorbei ist und es einen nachtest gibt, logischerweise gleich in der nächsten programmierstunde versuche ich nun das test bsp im nachinein noch zu verstehen, aber es gelingt mir bishe rund würd mich freuen wenn mir hier jemand weiter helfen könnte</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129201/fehlersuche-itoa-grundlagen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 04:55:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129201.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Dec 2005 12:17:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 12:17:25 GMT]]></title><description><![CDATA[<p>hallo<br />
kann mir jedmand sagen wie man unten stehendes source code zum laufen bringt?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;libsocket.h&gt;
#include &lt;pthreads.h&gt;
using namespace std;
using namespace Network;

int main( int argc, char * argv[] )
{
  int i = ((50*256+66)*256) *256+52;
  char c1[9];
  c1 = itoa(i, c1, 10);
  char c2[4] = 'a';
  memcpy((int*)c2,(int*)i,4);
  cout &lt;&lt; c2 &lt;&lt;endl;
  string s1(c2);
  int j = htonl(i);
  string s2;
  return 0;
}
</code></pre>
<p>zb: was ist an</p>
<pre><code class="language-cpp">c1 = itoa(i, c1, 10);
</code></pre>
<p>falsch?</p>
<p>so sehen jedenfalls beispiele bei einem programmier test aus und dann heissts halt fehlersuche und korrektur und fragen dazu beantworten, da der test nun schon vorbei ist und es einen nachtest gibt, logischerweise gleich in der nächsten programmierstunde versuche ich nun das test bsp im nachinein noch zu verstehen, aber es gelingt mir bishe rund würd mich freuen wenn mir hier jemand weiter helfen könnte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939500</guid><dc:creator><![CDATA[stefan_]]></dc:creator><pubDate>Sun, 11 Dec 2005 12:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 12:20:00 GMT]]></title><description><![CDATA[<p>itoa gibts nicht im C oder C++ Standard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939503</guid><dc:creator><![CDATA[unasdf]]></dc:creator><pubDate>Sun, 11 Dec 2005 12:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 12:23:15 GMT]]></title><description><![CDATA[<p>An itoa ist zum Beispiel falsch, es überhaupt zu verwenden. Da du im C++ Forum postest, empfehl ich dir mal die Klasse std::stringstream anzuschauen.</p>
<p>Btw.: Der Bereich von int geht etwa von -32.000 bis 32.000. Also ist das wohl nicht der richtige Datentyp für deine Rechnung in der ersten Zeile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939504</guid><dc:creator><![CDATA[cin]]></dc:creator><pubDate>Sun, 11 Dec 2005 12:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 12:24:47 GMT]]></title><description><![CDATA[<blockquote>
<p>Der Bereich von int geht etwa von -32.000 bis 32.000.</p>
</blockquote>
<p>Ja ne is klar. Visual Basic Programmierer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939506</guid><dc:creator><![CDATA[LOL!]]></dc:creator><pubDate>Sun, 11 Dec 2005 12:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 12:28:10 GMT]]></title><description><![CDATA[<p>*datentyp-unterscheidungs-brille aufsetz* ah <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>
]]></description><link>https://www.c-plusplus.net/forum/post/939508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939508</guid><dc:creator><![CDATA[cin]]></dc:creator><pubDate>Sun, 11 Dec 2005 12:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 12:50:30 GMT]]></title><description><![CDATA[<p>unasdf schrieb:</p>
<blockquote>
<p>itoa gibts nicht im C oder C++ Standard.</p>
</blockquote>
<p>aha, naja in der schule haben wir es einfach so verwendet, nur finde ich das programm greade nicht wirklich(ka obs beim c++ builder irgendwie dabei ist)</p>
<p>wenn ich jedenfalls unteres bsp probiere (vorher da printf auf cout umändern..) dann funzt es, und ich weiss das itoa von int nach char umwandelt und man durch ändern des radix noch zwischen binär, octal, hex und dezimal umwandeln kann, nur weiss ichd as eben nur theoretisch und net praktisch um zu verstehen was iin meinem ersten post falsch ist</p>
<pre><code class="language-cpp">Beispiel:

#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

void main (void)
{
  int zahl = -123456789L;
  char string[25];

  ltoa (zahl, string, 10);
  printf (&quot;Zahl = %ld String = %s\n&quot;, zahl, string);
}
</code></pre>
<p>cin schrieb:</p>
<blockquote>
<p>An itoa ist zum Beispiel falsch, es überhaupt zu verwenden. Da du im C++ Forum postest, empfehl ich dir mal die Klasse std::stringstream anzuschauen.</p>
<p>Btw.: Der Bereich von int geht etwa von -32.000 bis 32.000. Also ist das wohl nicht der richtige Datentyp für deine Rechnung in der ersten Zeile.</p>
</blockquote>
<p>aha, solche sachen verwenden wir nicht wirklich in der schhule<br />
und die rechnung oben soll irgend einen ASCII code ergeben, da wir etwas in einer ASCII tabelle nachschauen sollten</p>
<p>LOL! schrieb:</p>
<blockquote>
<blockquote>
<p>Der Bereich von int geht etwa von -32.000 bis 32.000.</p>
</blockquote>
<p>Ja ne is klar. Visual Basic Programmierer?</p>
</blockquote>
<p>gilt die frage mir?<br />
nein c++ anfänger netzwerkprogrammierung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939518</guid><dc:creator><![CDATA[stefan_]]></dc:creator><pubDate>Sun, 11 Dec 2005 12:50:30 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 13:02:06 GMT]]></title><description><![CDATA[<p>Die Größe von int ist nicht im Standard festgelegt, und von der darunterliegenden Plattform abhängig. Die Zeiten, in denen int nur Werte zwischen -32768 und 32767 annahm, sind aber seit etwa 10 Jahren vorbei, in aller Regel nimmt int heute Werte zwischen +- 2 Milliarden und ein bisschen an. (-2^31 bis 2^31 - 1). Generell ist allerdings nur garantiert, dass</p>
<pre><code class="language-cpp">sizeof(short) &lt;= sizeof(int) &lt;= sizeof(long)
</code></pre>
<p>Was den Code angeht,</p>
<pre><code class="language-cpp">int zahl = -123456789L;
</code></pre>
<p>ist Blödsinn. Zwar kann int -123456789 annehmen, aber -123456789L ist explizit ein long-Literal. Obwohl die meisten Compiler das wahrscheinlich sogar fressen und nur ne Warnung ausspucken würden. Am ursprünglichen Code ist folgendes falsch:</p>
<pre><code class="language-cpp">char c1[9];
  c1 = itoa(i, c1, 10);
</code></pre>
<p>zum einen ist c1 9 Zeichen lang, nicht 10, also hast du da potentiell nen Buffer-Overflow drin, zum anderen ist c1 ein Array und kein Pointer, und daher in der Form als lvalue nicht zu benutzen. Richtig wäre</p>
<pre><code class="language-cpp">char c1[10];
itoa(i, c1, 10);
</code></pre>
<p>wobei es sich da empfiehlt,</p>
<pre><code class="language-cpp">char c1[10];
itoa(i, c1, sizeof(c1));
</code></pre>
<p>zu schreiben. Außerdem ist zu sagen, dass itoa nicht im C++-Standard enthalten ist und sowieso eher C-artig aussieht. Für meinen Geschmack wäre die saubere Lösung, stringstreams zu benutzen, also</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;

int main() {
  int zahl = -123456789;
  std::ostringstream os;
  std::string s;

  os &lt;&lt; zahl;
  s = os.str();

  std::cout &lt;&lt; &quot;Zahl: &quot; &lt;&lt; zahl &lt;&lt; &quot;, String: &quot; &lt;&lt; s &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/939525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939525</guid><dc:creator><![CDATA[0xdeadbeef]]></dc:creator><pubDate>Sun, 11 Dec 2005 13:02:06 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Sun, 11 Dec 2005 17:36:28 GMT]]></title><description><![CDATA[<p>also das mit der zahl hab ich aus nem bsp aus dem internet</p>
<p>gut das mit dem bufferoverflow verstehe ich dass es so nicht geht wenn man mehr in weniger reinhaben will<br />
und &quot;zum anderen ist c1 ein Array und kein Pointer, und daher in der Form als lvalue nicht zu benutzen.&quot; bezieht sich auf die zuweisung oder?</p>
<p>ich hab jetzt jedenfalls bisschen herumprobiert</p>
<pre><code class="language-cpp">string x = itoa(i, c1, 10);  //es funktioniert nur so, aber warum, es sollte doch mit char gehen oder?
char x= itoa(i, c1, 10);    //funzt nicht, weiss nicht warum
int x=  itoa(i, c1, 10);    //funzt nicht, klar, weil ich in ne int char reingeben will
</code></pre>
<p>(hier sieht man dass eben diese grundlagen fehlen)</p>
<p>und was stringstreams sind weiss ich nicht, bzw verwenden wir sie in der schule nicht</p>
<p>bitte helfen!?!?!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939579</guid><dc:creator><![CDATA[stefan_]]></dc:creator><pubDate>Sun, 11 Dec 2005 17:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to fehlersuche itoa();, grundlagen on Mon, 12 Dec 2005 10:43:49 GMT]]></title><description><![CDATA[<p>versuch's mal mit &quot;char*x=itoa(...);&quot; (die Funktion gibt afaik einen <strong>Pointer</strong> auf char zurück).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940039</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 12 Dec 2005 10:43:49 GMT</pubDate></item></channel></rss>