<?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[wie caste ich richtig]]></title><description><![CDATA[<p>Ich habe keine Ahnung wie man castet höre nur immer wieder das man damit Datentypen ineinander umwandeln kann, ist das richtig oder verwechsele ichd a was, wenn ja wie kann ich Datentypen ineinander umwandeln? (ich meine nicht mit Typ spezifischen Zeug wie IntToStr oder StrToInt aus dem Borland VCL Zeugs)<br />
Könnte mir das bitte jemand erklären wie ich caste und entspricht der Wert genau dem was ich im anderen Wert stehen hatte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/122022/wie-caste-ich-richtig</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 08:09:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/122022.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Sep 2005 15:31:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wie caste ich richtig on Thu, 29 Sep 2005 15:31:50 GMT]]></title><description><![CDATA[<p>Ich habe keine Ahnung wie man castet höre nur immer wieder das man damit Datentypen ineinander umwandeln kann, ist das richtig oder verwechsele ichd a was, wenn ja wie kann ich Datentypen ineinander umwandeln? (ich meine nicht mit Typ spezifischen Zeug wie IntToStr oder StrToInt aus dem Borland VCL Zeugs)<br />
Könnte mir das bitte jemand erklären wie ich caste und entspricht der Wert genau dem was ich im anderen Wert stehen hatte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883086</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Thu, 29 Sep 2005 15:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Thu, 29 Sep 2005 15:42:55 GMT]]></title><description><![CDATA[<p>static_cast&lt;&gt;<br />
const_cast&lt;&gt;<br />
dynamic_cast&lt;&gt;<br />
reinterpret_cast&lt;&gt;</p>
<p>&quot;Normale&quot; Casts macht man mit static_cast, mit einem const_cast kann man aus konstanten non-const Objects machen. Mit reinterpret_cast kannst du Pointer wild umher casten. Der dynamic_cast ist vor allem zum down cast und scheitert (gibt Null zurück) wenn es nicht geht.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883088</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Thu, 29 Sep 2005 15:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Thu, 29 Sep 2005 15:44:59 GMT]]></title><description><![CDATA[<blockquote>
<p>und entspricht der Wert genau dem was ich im anderen Wert stehen hatte?</p>
</blockquote>
<p>vielleicht <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="😉"
    /> - casten ist eine große Fehlerquelle - deshalb hat man in C++ im gegensatz zu C extra hässliche Schlüsselworte eingeführt damit sich Programmierer beim casten gedanken machen und damit ein cast im Quellcode schnell gefunden werden kann</p>
<p>guckstdu hier:<br />
<a href="http://courses.iicm.edu/programmierpraktikum/skriptum/SoftwareentwicklungInCplusplusTwoPagesOnOne.pdf" rel="nofollow">http://courses.iicm.edu/programmierpraktikum/skriptum/SoftwareentwicklungInCplusplusTwoPagesOnOne.pdf</a></p>
<p>such folgende begriffe:<br />
dynamic_cast<br />
static_cast<br />
reinterpret_cast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883092</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 29 Sep 2005 15:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Thu, 29 Sep 2005 15:49:38 GMT]]></title><description><![CDATA[<blockquote>
<p>und entspricht der Wert genau dem was ich im anderen Wert stehen hatte?</p>
</blockquote>
<p>Muss nicht sein, hier z.B. nicht:</p>
<pre><code class="language-cpp">double PI = 3.14159;
int i = static_cast&lt;int&gt;(PI);
</code></pre>
<p>Da wird wohl nur drei stehenbleiben.</p>
<p>EDIT: Too slow...<br />
EDIT2: 13 Jahre Mathe in der Schule, und PI war trotzdem falsch <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>
]]></description><link>https://www.c-plusplus.net/forum/post/883093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883093</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 29 Sep 2005 15:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Thu, 29 Sep 2005 16:28:03 GMT]]></title><description><![CDATA[<p>Danke für die reichlichen antworten die Seite werd ich jetzt sofort downloaden und sichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883106</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Thu, 29 Sep 2005 16:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Fri, 30 Sep 2005 05:52:35 GMT]]></title><description><![CDATA[<p>Also nur zur Info man kann nicht jeden beliebigen Datentyp in einen anderen umwandeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883335</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Fri, 30 Sep 2005 05:52:35 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Fri, 30 Sep 2005 11:21:12 GMT]]></title><description><![CDATA[<p>Kevinus schrieb:</p>
<blockquote>
<p>Also nur zur Info man kann nicht jeden beliebigen Datentyp in einen anderen umwandeln?</p>
</blockquote>
<p>Das geht schon, nur ob es Sinn macht ist was anderes.</p>
<pre><code class="language-cpp">template&lt;class TypeTarget, class TypeSource&gt;
TypeTarget const&amp; force_cast(TypeSource const&amp; src)
{
    return *reinterpret_cast&lt;TypeTarget const*&gt;(&amp;src);
}
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883519</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Fri, 30 Sep 2005 11:21:12 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 10:50:35 GMT]]></title><description><![CDATA[<p>ok daraus werde ich nicht richtig schlau, wie sehe es aus wenn ich einen int wert in einen string umwandeln möchte?</p>
<p>oder einen int Wert in einen char *?</p>
<p>Der Compiler sagt mir bei static_cast das das nicht zulässig wäre diese Datentypen ineinander umzuwandeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/887614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887614</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Sat, 08 Oct 2005 10:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 11:42:26 GMT]]></title><description><![CDATA[<p>Da musst du static_cast dafür nehmen, da die neuen Casts genaue Aufgabengebiete haben und keiner mehr alles kann.</p>
<p>Nen force_cast muss man daher so schreiben:</p>
<pre><code class="language-cpp">template&lt; typename T, typename S &gt; T force_cast( const S&amp; source )
{
  return (T)source;
}
// Anwendung:
// int i = force_cast&lt; int &gt;( &quot;Hallo&quot; );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/887661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887661</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Sat, 08 Oct 2005 11:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 12:00:17 GMT]]></title><description><![CDATA[<p>aha aber das löst nicht das Problem wenn ich schreibe</p>
<pre><code class="language-cpp">...
int I;
string Test=static_cast&lt;string&gt;(I);
...
</code></pre>
<p>sagt der Compiler das wäre nicht zulässig! Wie löse ich dieses Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/887678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887678</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Sat, 08 Oct 2005 12:00:17 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 12:01:52 GMT]]></title><description><![CDATA[<p>In die FAQ schauen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/887679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887679</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Sat, 08 Oct 2005 12:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 12:03:38 GMT]]></title><description><![CDATA[<p>Du kansst keinen int in einen string casten.<br />
Umwandeln ist gefragt ( siehe sprintf, stringstreams ).<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/887683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887683</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sat, 08 Oct 2005 12:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 12:20:22 GMT]]></title><description><![CDATA[<p>oder boost::lexical_cast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/887692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887692</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Sat, 08 Oct 2005 12:20:22 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sat, 08 Oct 2005 20:33:58 GMT]]></title><description><![CDATA[<p>und gehen diese Methoden auch für cast * Werte=? Wie sieht es da mit Befehlen aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/887938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/887938</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Sat, 08 Oct 2005 20:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sun, 09 Oct 2005 13:23:23 GMT]]></title><description><![CDATA[<p>eigentlich müßte man unterscheiden zwischen casten und konvertieren.</p>
<p>beim konvertieren werden daten von einem datentyp in einen anderen umgewandelt. zB in int in eine zeichenkette.</p>
<p>beim casten bleiben die daten im speicher unverändert. der compiler wird lediglich angewiesen, sie anders zu interpretieren. zB kann man einen zeiger auf eine beliebige datenstruktur in einen zeiger auf char casten und dann die chars in eine datei schreiben.</p>
<p>leider wird in c/c++ begrifflich nicht zwischen casten und konvertieren unterschieden, was für anfänger verwirrend sein kann. da wird dann schon mal versucht einen string zu einem int zu &quot;casten&quot;: (int)&quot;1234&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>in c/c++ ist die konversion zwischen einfachen datentypen eingebaut. ein cast zwischen einfachen datentypen führt dann tatsächlich zu einer konversion. zB int x=(int)3.14 (weiter weiß ich pi auch nicht :D). bei zeigern wird uminterpretiert und ein cast zwischen verschiedenen structs/klassen ist auf direktem wege garnicht möglich. man kann aber structs/klassen casten indem man den zeiger auf die struktur nimmt und ihn auf einen zeiger auf eine andere struktur castet.</p>
<p>fazit: ist in c/c++ halt alles ein bißchen kompliziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888176</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sun, 09 Oct 2005 13:23:23 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sun, 09 Oct 2005 13:28:55 GMT]]></title><description><![CDATA[<p>Kevinus schrieb:</p>
<blockquote>
<p>aha aber das löst nicht das Problem wenn ich schreibe</p>
<pre><code class="language-cpp">...
int I;
string Test=static_cast&lt;string&gt;(I);
...
</code></pre>
<p>sagt der Compiler das wäre nicht zulässig! Wie löse ich dieses Problem?</p>
</blockquote>
<p>die stl-strings bietet mW keine funktion, um ints in einen string zu konvertieren <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="😞"
    /> in c++ nimmt man dafür am besten stringstreams.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888180</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sun, 09 Oct 2005 13:28:55 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sun, 09 Oct 2005 13:34:29 GMT]]></title><description><![CDATA[<p>gut das habsch kapiert ich suche jetzt gerade Funktionen wie ich int Werte in einen char *Zeiger schreiben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888182</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Sun, 09 Oct 2005 13:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sun, 09 Oct 2005 13:45:01 GMT]]></title><description><![CDATA[<p>wenn du einen c-string haben willst, dann mußt du dich mit dem guten alten ansi-c-sprintf behelfen:</p>
<pre><code class="language-cpp">#include&lt;cstdio&gt;

int  x=67276;
char text[256];
sprintf(text,&quot;%d&quot;,x);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/888190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888190</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sun, 09 Oct 2005 13:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Sun, 09 Oct 2005 14:54:59 GMT]]></title><description><![CDATA[<p>joar danke für die Hilfe ich habe meine Funktion aber auf string aufgebaut weil es mir dort wesentlich leichter geht das zu verwirklichen was ich brauche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888233</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Sun, 09 Oct 2005 14:54:59 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Mon, 10 Oct 2005 07:17:41 GMT]]></title><description><![CDATA[<p>Konfusius schrieb:</p>
<blockquote>
<p>eigentlich müßte man unterscheiden zwischen casten und konvertieren.</p>
</blockquote>
<p>Richtig.</p>
<blockquote>
<p>beim konvertieren werden daten von einem datentyp in einen anderen umgewandelt. zB in int in eine zeichenkette.<br />
beim casten bleiben die daten im speicher unverändert.</p>
</blockquote>
<p>Das ist quatsch.</p>
<p>Ein cast ist immer eine explizite Typkonvertierung. Was genau dort geschieht, ist abhängig von den konkreten Typen und dem verwendeten cast-Ausdruck. Eine reine Reinterpretierung des Bitmusters macht in der Regel nur der reinterpret_cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888572</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 10 Oct 2005 07:17:41 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Mon, 10 Oct 2005 08:12:17 GMT]]></title><description><![CDATA[<p>Konfusius schrieb:</p>
<blockquote>
<p>wenn du einen c-string haben willst, dann mußt du dich mit dem guten alten ansi-c-sprintf behelfen:</p>
<pre><code class="language-cpp">#include&lt;cstdio&gt;

int  x=67276;
char text[256];
sprintf(text,&quot;%d&quot;,x);
</code></pre>
</blockquote>
<pre><code class="language-cpp">stringstream stream;
stream&lt;&lt;x;
stream.str().c_str();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/888601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888601</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 10 Oct 2005 08:12:17 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Mon, 10 Oct 2005 15:28:40 GMT]]></title><description><![CDATA[<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Konfusius schrieb:</p>
<blockquote>
<p>eigentlich müßte man unterscheiden zwischen casten und konvertieren.</p>
</blockquote>
<p>Richtig.</p>
<blockquote>
<p>beim konvertieren werden daten von einem datentyp in einen anderen umgewandelt. zB in int in eine zeichenkette.<br />
beim casten bleiben die daten im speicher unverändert.</p>
</blockquote>
<p>Das ist quatsch.</p>
<p>Ein cast ist immer eine explizite Typkonvertierung. Was genau dort geschieht, ist abhängig von den konkreten Typen und dem verwendeten cast-Ausdruck. Eine reine Reinterpretierung des Bitmusters macht in der Regel nur der reinterpret_cast.</p>
</blockquote>
<p>habe mich vielleicht mißverständlich ausgedrückt. als ich geschrieben hatte</p>
<blockquote>
<p>beim casten bleiben die daten im speicher unverändert.</p>
</blockquote>
<p>meinte ich &quot;casten&quot; im sinne einer präzisen begriffsdefinition. in sinne von c/c++ kann casten natürlich auch konvertieren bedeuten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888978</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Mon, 10 Oct 2005 15:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Mon, 10 Oct 2005 15:52:26 GMT]]></title><description><![CDATA[<p>Konfusius schrieb:</p>
<blockquote>
<p>meinte ich &quot;casten&quot; im sinne einer präzisen begriffsdefinition. in sinne von c/c++ kann casten natürlich auch konvertieren bedeuten.</p>
</blockquote>
<p>Wovon redest du? Die C++ Bedeutung von cast ist die selbe wie in anderen Programmiersprachen auch.<br />
Ich habe das immer so gelernt: Bei Programmiersprachen unterscheidet man zwischen coercions und cast. coercions sind implizite Typkonvertierungen die durchgeführt werden um gewisse Operations-Interfaces zu erfüllen.<br />
cats sind hingegen explizite Typkonvertierungen die vom Programmierer durchgeführt werden.<br />
Ob bei coercions und/oder casts Informationen verloren gehen können, bzw. Typen einfach nur uminterpretiert werden ist abhängig von der Programmiersprache. Das sind beides keine erforderlichen Eigenschaften.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/888998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/888998</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 10 Oct 2005 15:52:26 GMT</pubDate></item><item><title><![CDATA[Reply to wie caste ich richtig on Mon, 10 Oct 2005 16:00:04 GMT]]></title><description><![CDATA[<p>ich meine &quot;casten&quot; im sinne von uminterpretieren und &quot;konvertieren&quot; im sinne von umwandeln.</p>
<p>ich habe in meinem beitrag nur versucht zu erklären, was unter umiterpretieren im gegensatz zu umwandeln zu verstehen ist. das ich &quot;casten&quot; anstelle von &quot;uminterpretieren&quot; geschrieben habe war vielleicht mißverständlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889005</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Mon, 10 Oct 2005 16:00:04 GMT</pubDate></item></channel></rss>