<?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[invalid conversion from &#96;char&#x27; to &#96;const char*&#x27;]]></title><description><![CDATA[<p>Beim erneuten durcharbeiten, der übungsbeispiele eines bekannten c++ online tutorial, bin ich auf folgende problematik gestoßen.</p>
<p>Das beispiel hört sich vorerst einmal völlig harmlos an:</p>
<p>Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe einer vierstelligen Zahl auffordert. Das Programm soll daraufhin die Quersumme der vierstelligen Zahl errechnen und das Ergebnis dann auf den Bildschirm ausgeben. Hinweis: Je nach Lösungsansatz benötigen Sie wie in Aufgabe 1 die Funktion atoi() zum Umrechnen von Zahlen innerhalb eines Arrays vom Typ char in Werte vom Typ int.</p>
<p>Soweit alles in ordnung. Der Leser hat bis zu diesem punkt noch nichts über schleifen aka „kontrollstrukturen“ gelernt. Auch der % modulo operator wurde nur gestreift. Arrays wurden nur im zusammenhang mit char datentypen erläutert.</p>
<p>Nun wird im letzten satz der aufgabestellung die atoi funktion erwähnt, mit der eine lösung möglich ist. Vor dem geistigen auge sieht der code dann wie folgt aus:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
using namespace std;

char a[3];
int summe = 0;

int main(void)
{
cout &lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; flush;
cin &gt;&gt; a;

int summe = atoi(a[0]) + atoi(a[1]) + atoi(a[2]) + atoi(a[3]);

std::cout &lt;&lt; b &lt;&lt; std::endl &lt;&lt; std::endl;

system (&quot;PAUSE&quot;);      
}
</code></pre>
<p>Alles soweit logisch, die atoi funktion noch einmal gegoogelt um weitere infos zum einsatz dieses befehls erhalten, kompiliert und zur erkenntnis gekommen dass das ganze vorhaben wohl so nicht funktionieren wird.</p>
<p>Der knackpunkt liegt in zeile 17 die zur fehlermeldung „invalid conversion from `char' to `const char*'“ führt.</p>
<p>Meine fragen wären nun,<br />
warum funktioniert das beispiel so, speziell auf die atoi funktion nicht?<br />
wie soll man dieses beispiel ohne modulo operator oder schleifen vernünftig lösen ?</p>
<p>Danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/219989/invalid-conversion-from-char-to-const-char</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 13:07:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219989.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 10 Aug 2008 14:37:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 14:37:35 GMT]]></title><description><![CDATA[<p>Beim erneuten durcharbeiten, der übungsbeispiele eines bekannten c++ online tutorial, bin ich auf folgende problematik gestoßen.</p>
<p>Das beispiel hört sich vorerst einmal völlig harmlos an:</p>
<p>Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe einer vierstelligen Zahl auffordert. Das Programm soll daraufhin die Quersumme der vierstelligen Zahl errechnen und das Ergebnis dann auf den Bildschirm ausgeben. Hinweis: Je nach Lösungsansatz benötigen Sie wie in Aufgabe 1 die Funktion atoi() zum Umrechnen von Zahlen innerhalb eines Arrays vom Typ char in Werte vom Typ int.</p>
<p>Soweit alles in ordnung. Der Leser hat bis zu diesem punkt noch nichts über schleifen aka „kontrollstrukturen“ gelernt. Auch der % modulo operator wurde nur gestreift. Arrays wurden nur im zusammenhang mit char datentypen erläutert.</p>
<p>Nun wird im letzten satz der aufgabestellung die atoi funktion erwähnt, mit der eine lösung möglich ist. Vor dem geistigen auge sieht der code dann wie folgt aus:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
using namespace std;

char a[3];
int summe = 0;

int main(void)
{
cout &lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; flush;
cin &gt;&gt; a;

int summe = atoi(a[0]) + atoi(a[1]) + atoi(a[2]) + atoi(a[3]);

std::cout &lt;&lt; b &lt;&lt; std::endl &lt;&lt; std::endl;

system (&quot;PAUSE&quot;);      
}
</code></pre>
<p>Alles soweit logisch, die atoi funktion noch einmal gegoogelt um weitere infos zum einsatz dieses befehls erhalten, kompiliert und zur erkenntnis gekommen dass das ganze vorhaben wohl so nicht funktionieren wird.</p>
<p>Der knackpunkt liegt in zeile 17 die zur fehlermeldung „invalid conversion from `char' to `const char*'“ führt.</p>
<p>Meine fragen wären nun,<br />
warum funktioniert das beispiel so, speziell auf die atoi funktion nicht?<br />
wie soll man dieses beispiel ohne modulo operator oder schleifen vernünftig lösen ?</p>
<p>Danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562259</guid><dc:creator><![CDATA[cl1985]]></dc:creator><pubDate>Sun, 10 Aug 2008 14:37:35 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 14:47:31 GMT]]></title><description><![CDATA[<p>Schlechtes C++ Tutorial. In C++ nimmt man stringstreams und nicht atoi. Das mit der Arraygroße und was ein Array und ein Zeichen ist, hast du auch noch nicht verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562265</guid><dc:creator><![CDATA[ZeichenDerAblehnung]]></dc:creator><pubDate>Sun, 10 Aug 2008 14:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 14:54:19 GMT]]></title><description><![CDATA[<p>Schlechte Art:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;

using namespace std;

char str[4];
int summe = 0;

int main(void)
{
cout &lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; flush;
cin &gt;&gt; str;

summe = (int)(str[0]) + (int)(str[1])+ (int)(str[2]) + (int)(str[3]);

summe -= 4*48;

std::cout &lt;&lt; summe &lt;&lt; std::endl &lt;&lt; std::endl;

}
</code></pre>
<p>(C-Casts, arbeiten mit Arrays, ebenfalls böse. Du hast nämlich bereits einen Fehler drin bei dir (unabhängig von atoi)).</p>
<p>Bessere Art:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

using namespace std;

std::string str;
int summe = 0;

int main(void)
{
cout &lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; flush;
cin &gt;&gt; str;

for (int i = 0; i &lt; 4 ; i++)
{
	std::stringstream val;
	int s = 0;
	val &lt;&lt; str[i];
	val &gt;&gt; s;
	summe += s;
}

std::cout &lt;&lt; summe &lt;&lt; std::endl &lt;&lt; std::endl;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1562267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562267</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 10 Aug 2008 14:54:19 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 15:23:00 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">summe = (int)(str[0]) + (int)(str[1])+ (int)(str[2]) + (int)(str[3]);

summe -= 4*48;
</code></pre>
</blockquote>
<p>Wie waere es mit</p>
<pre><code class="language-cpp">char digit(char c) { return c-'0'; }
summe = digit(str[0]) + digit(str[1]) + digit(str[2]) + digit(str[3]);
</code></pre>
<p>und das ganze ohne mit kanonen auf spatzen zu schiessen <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562276</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 10 Aug 2008 15:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 15:32:52 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">summe = (int)(str[0]) + (int)(str[1])+ (int)(str[2]) + (int)(str[3]);

summe -= 4*48;
</code></pre>
</blockquote>
<p>Wie waere es mit</p>
<pre><code class="language-cpp">char digit(char c) { return c-'0'; }
summe = digit(str[0]) + digit(str[1]) + digit(str[2]) + digit(str[3]);
</code></pre>
<p>und das ganze ohne mit kanonen auf spatzen zu schiessen <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="😉"
    /></p>
</blockquote>
<p>Och.. Shade.. ich wollte es doch so hässlich, wie möglich machen.. <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="😉"
    /><br />
Ich will ja nicht, dass er sich solchen Mist angewöhnt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562280</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 10 Aug 2008 15:32:52 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 15:42:54 GMT]]></title><description><![CDATA[<p>Das es möglichkeiten gibt dieses beispiel auf verschiedenste wege mit den möglichkeiten der programmiersprache zu lösen, finde ich gut.</p>
<p>Ist man aber aufgrund seines leider noch geringen wissens über c++ noch nicht in der lage alle möglichkeiten auszuschöpfen, frage ich mich wie dieses beispiel mit array und atoi lösbar ist.</p>
<p>Dieses Quersummenbeispiel wurde auch schon von mir gelöst, das ist nicht die frage. Hätte ich aber damals nicht einfach weitergelesen und dieses beispiel ausgelassen um es mit später im tutorial vermittelten wissen zu lösen, wie hätte ich das ganze mit dieser sprachlimitierung lösen sollen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562283</guid><dc:creator><![CDATA[cl1985]]></dc:creator><pubDate>Sun, 10 Aug 2008 15:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 15:52:58 GMT]]></title><description><![CDATA[<p>cl1985 schrieb:</p>
<blockquote>
<p>Ist man aber aufgrund seines leider noch geringen wissens über c++ noch nicht in der lage alle möglichkeiten auszuschöpfen, frage ich mich wie dieses beispiel mit array und atoi lösbar ist.</p>
</blockquote>
<p>Das ist aber eine schlechte Einstellung, denn gerade z.B. <code>atoi</code> gehört viel eher zur Programmiersprache C als zu C++. In C++ hat man wie gesagt die Möglichkeit, mit Stringstreams, <code>std::string</code> und Containern zu arbeiten, die wirklich sehr vieles vereinfacht. Das ist nicht einmal unbedingt schwieriger zu lernen, wird sich im Gegenzug aber als sehr hilfreich erweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562290</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 10 Aug 2008 15:52:58 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 16:07:13 GMT]]></title><description><![CDATA[<p>cl1985 schrieb:</p>
<blockquote>
<p>Ist man aber aufgrund seines leider noch geringen wissens über c++ noch nicht in der lage alle möglichkeiten auszuschöpfen, frage ich mich wie dieses beispiel mit array und atoi lösbar ist.</p>
</blockquote>
<p>Die Array Loesung hast du von mir bekommen. Die atoi Loesung darfst du dir selber ueberlegen. Sie beinhaltet keine arrays, dafuer aber die beiden operatoren / und %</p>
<p>aber wenn du sagst, du hast es bereits geloest - worum geht es dir hier...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562299</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 10 Aug 2008 16:07:13 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion from &#96;char&#x27; to &#96;const char*&#x27; on Sun, 10 Aug 2008 16:15:13 GMT]]></title><description><![CDATA[<p>Ich habe einfach nochmal im schnellverfahren die auf <a href="http://www.highscore.de/cpp/einfuehrung/index.html" rel="nofollow">http://www.highscore.de/cpp/einfuehrung/index.html</a> am ende jedes kapitels erneut durcharbeiten wollen, als prüfungsvorbereitung. Dabei viel mir dieses beispiel auf. Hat man dieses online tutorial bis dahin gelesen, wurde meiner meinung nach noch zu wenig wissen vermittelt. Auch wird man einfach so auf den atoi befehl losgelassen. Ich habe weniger die qualität des tutorials hinterfragt als meine meine programmierkenntnisse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562302</guid><dc:creator><![CDATA[cl1985]]></dc:creator><pubDate>Sun, 10 Aug 2008 16:15:13 GMT</pubDate></item></channel></rss>