<?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[Paramter verarbeiten]]></title><description><![CDATA[<p>Ich bin nach mehr als 20 Jahren C-Pause also blutiger Anfänger und versuche wieder einzusteigen in C++, nachdem ich UBUNTU kennengelernt habe und WINDOWS beerdigt habe. An der ersten Hürde kaue ich seit 2 Tagen.<br />
Wie übergebe ich numerische Parameter.</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;<br />
using namespace std;<br />
int main(int argn, char *argv[])<br />
{<br />
int x;<br />
string k;<br />
k=argv[1];<br />
<strong>//x = atoi(k); zunächst AUSGESCHALTET</strong><br />
cout &lt;&lt; &quot;argn &quot; &lt;&lt; &quot;:&quot; &lt;&lt; argn &lt;&lt; endl;<br />
cout &lt;&lt; &quot;k &quot; &lt;&lt; &quot;:&quot; &lt;&lt; k &lt;&lt; endl;<br />
for(int j=0; j &lt; argn; j=j+1)<br />
{<br />
cout &lt;&lt; &quot;argv &quot; &lt;&lt; &quot;:&quot; &lt;&lt; argv[j] &lt;&lt; endl;<br />
cout &lt;&lt; &quot;k &quot; &lt;&lt; &quot;:&quot; &lt;&lt; k &lt;&lt; endl;<br />
cout &lt;&lt; &quot;x &quot; &lt;&lt; &quot;:&quot; &lt;&lt; x &lt;&lt; endl;<br />
}<br />
}</p>
<p>Ergebnis:</p>
<p>./CPROGS/BSP 5 70</p>
<p>k :5<br />
x :-1218330636<br />
argn :3<br />
k :5<br />
argv :./CPROGS/BSP<br />
argv :5<br />
argv :70</p>
<p>Ich will jedoch Parameter 1 (also 5) als int x verwenden, also <strong>x = atoi(k);</strong><br />
Da streikt schon der Compiler:<br />
Speicherzugriffsfehler (Speicherabzug geschrieben)</p>
<p>Was mach ich also falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312241/paramter-verarbeiten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 23:00:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312241.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Dec 2012 21:49:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Paramter verarbeiten on Sat, 29 Dec 2012 21:49:34 GMT]]></title><description><![CDATA[<p>Ich bin nach mehr als 20 Jahren C-Pause also blutiger Anfänger und versuche wieder einzusteigen in C++, nachdem ich UBUNTU kennengelernt habe und WINDOWS beerdigt habe. An der ersten Hürde kaue ich seit 2 Tagen.<br />
Wie übergebe ich numerische Parameter.</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;<br />
using namespace std;<br />
int main(int argn, char *argv[])<br />
{<br />
int x;<br />
string k;<br />
k=argv[1];<br />
<strong>//x = atoi(k); zunächst AUSGESCHALTET</strong><br />
cout &lt;&lt; &quot;argn &quot; &lt;&lt; &quot;:&quot; &lt;&lt; argn &lt;&lt; endl;<br />
cout &lt;&lt; &quot;k &quot; &lt;&lt; &quot;:&quot; &lt;&lt; k &lt;&lt; endl;<br />
for(int j=0; j &lt; argn; j=j+1)<br />
{<br />
cout &lt;&lt; &quot;argv &quot; &lt;&lt; &quot;:&quot; &lt;&lt; argv[j] &lt;&lt; endl;<br />
cout &lt;&lt; &quot;k &quot; &lt;&lt; &quot;:&quot; &lt;&lt; k &lt;&lt; endl;<br />
cout &lt;&lt; &quot;x &quot; &lt;&lt; &quot;:&quot; &lt;&lt; x &lt;&lt; endl;<br />
}<br />
}</p>
<p>Ergebnis:</p>
<p>./CPROGS/BSP 5 70</p>
<p>k :5<br />
x :-1218330636<br />
argn :3<br />
k :5<br />
argv :./CPROGS/BSP<br />
argv :5<br />
argv :70</p>
<p>Ich will jedoch Parameter 1 (also 5) als int x verwenden, also <strong>x = atoi(k);</strong><br />
Da streikt schon der Compiler:<br />
Speicherzugriffsfehler (Speicherabzug geschrieben)</p>
<p>Was mach ich also falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284333</guid><dc:creator><![CDATA[ThomasLanger]]></dc:creator><pubDate>Sat, 29 Dec 2012 21:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Paramter verarbeiten on Sat, 29 Dec 2012 22:15:00 GMT]]></title><description><![CDATA[<p>argv[1] ist ein char* und kein string<br />
atoi erwartet ein char* und keinen string</p>
<pre><code>x = atoi(argv[1]);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2284340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284340</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Sat, 29 Dec 2012 22:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to Paramter verarbeiten on Sat, 29 Dec 2012 22:17:52 GMT]]></title><description><![CDATA[<p>wer stürzt ab? Der Compiler oder dein Programm?</p>
<p>Mit C++11 sollte es so gehen</p>
<pre><code class="language-cpp">#include &lt;string&gt;
...
std::string val = &quot;5&quot;;// bei dir argv[1]
int x = std::stoi( val );
</code></pre>
<p>g++ --std=c++0x ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284342</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 29 Dec 2012 22:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Paramter verarbeiten on Sat, 29 Dec 2012 23:55:42 GMT]]></title><description><![CDATA[<p>Wenn man die C++11-Funktionen nicht verwenden will, dann kann man immernoch gut mit stringstreams arbeiten.</p>
<pre><code>#include &lt;sstream&gt;

std::stringstream stream;
stream&lt;&lt;argv[1];
int zahl;
stream&gt;&gt;zahl;
</code></pre>
<p>EDIT: Auch wenn das nicht dein Problem ist: Dein Programm verlangt zur Zeit mindestens einen Parameter, der Fall dass nur einer angegeben wird, sollte unbedingt abgefangen werden, auch wenn da nur mit einer Fehlermeldung reagiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284367</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sat, 29 Dec 2012 23:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Paramter verarbeiten on Sun, 30 Dec 2012 01:23:13 GMT]]></title><description><![CDATA[<p>Ja oder man könnte auch einfach <code>.c_str()</code> hinten dran schreiben:</p>
<pre><code class="language-cpp">x = atoi(k.c_str()); // tadaaa
</code></pre>
<p>Warum der Compiler hier ohne <code>.c_str()</code> nen Schnellzug baut wäre aber auch interessant.</p>
<p>ps: das Programm darf bei Ausführung natürlich crashen, denn es fehlt ja der <code>argc</code> check. Wenn man also keine Parameter mitgibt, dann kann es schonmal beim Zugriff auf <code>argv[1]</code> crashen, oder auch gerne im Konstruktor des <code>std::string</code> (dem man dummerweise keine Nullpointer übergeben darf).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284373</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 30 Dec 2012 01:23:13 GMT</pubDate></item><item><title><![CDATA[Reply to Paramter verarbeiten on Sun, 30 Dec 2012 05:55:15 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<pre><code class="language-cpp">x = atoi(k.c_str()); // tadaaa
</code></pre>
</blockquote>
<p>d.h. da würde dann stehen</p>
<pre><code>int main(int argn, char *argv[]) 
{ 
    std::stringstream stream;
    stream &lt;&lt; argv[1];
    string k;
    stream &gt;&gt; k;
    int x = atoi(k.c_str());
    // ...
}
</code></pre>
<p><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/2284380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284380</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Sun, 30 Dec 2012 05:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Paramter verarbeiten on Mon, 31 Dec 2012 07:21:25 GMT]]></title><description><![CDATA[<p>Nein.<br />
Guckst du ersten Beitrag in diesem Thread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284660</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 31 Dec 2012 07:21:25 GMT</pubDate></item></channel></rss>