<?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[sizeof mit Kommandozeilenparameter]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe eine Anfängerfrage, die wahrscheinlich schnell beantwortet werden kann:</p>
<p>Ich möchte die Anzahl der Zeichen (oder die Gesamtgröße in Bytes) eines Kommandozeilenparameters bestimmen.</p>
<p>Mit sizeof(argv[1]) kommt immer 4 (ws. das erste Zeichen...)</p>
<p>Wie kann ich da die richtige Größe bestimmen?</p>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/167172/sizeof-mit-kommandozeilenparameter</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 21:56:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167172.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Dec 2006 13:20:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:20:11 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe eine Anfängerfrage, die wahrscheinlich schnell beantwortet werden kann:</p>
<p>Ich möchte die Anzahl der Zeichen (oder die Gesamtgröße in Bytes) eines Kommandozeilenparameters bestimmen.</p>
<p>Mit sizeof(argv[1]) kommt immer 4 (ws. das erste Zeichen...)</p>
<p>Wie kann ich da die richtige Größe bestimmen?</p>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188336</guid><dc:creator><![CDATA[Matg40]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:24:25 GMT]]></title><description><![CDATA[<p>Mit std::<a href="http://man.cx/strlen" rel="nofollow">man: strlen</a> aus &lt;cstring&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188340</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:38:15 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
<p>Hat geklappt... manchmal rafft mans einfach nicht <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>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188352</guid><dc:creator><![CDATA[Matg40]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:38:15 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:45:35 GMT]]></title><description><![CDATA[<p>Matg40 schrieb:</p>
<blockquote>
<p>...<br />
Mit sizeof(argv[1]) kommt immer 4 (ws. das erste Zeichen...)<br />
...</p>
</blockquote>
<p>Weil sizeof() zur Compilezeit ausgewertet wird. D.h. in Deinem Programm steht nach dem Kompilieren nicht mehr &quot;sizeof(...)&quot;, sondern &quot;4&quot;. <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>
<p>Wie schon gesagt: z.B. strlen() aus &lt;cstring&gt;.<br />
Oder per std::string aus &lt;string&gt;:</p>
<pre><code class="language-cpp">// Wenn ich wirklich nur die Länge brauche:
int len1 = std::string(argv[1]).length();

// Wenn ich später noch Anderes machen möchte:
std::string arg2(argv[2]);
int len2 = arg2.length();
</code></pre>
<p>Das hat noch den Vorteil, dass Du ab da an die sehr viel komfortableren (und für Anfänger sichereren) std::string-Manipulationen durchführen kannst.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188359</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:45:35 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:47:08 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// Wenn ich wirklich nur die Länge brauche:
int len1 = std::string(argv[1]).length();
</code></pre>
</blockquote>
<p>Schießt du gerne mit Spatzen auf Kanonen (edit: oder war's andersrum? egal)? Wenn du den String nicht weiter verarbeiten willst, brauchst du ihn auch nicht anzulegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188363</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:48:57 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// Wenn ich wirklich nur die Länge brauche:
int len1 = std::string(argv[1]).length();
</code></pre>
</blockquote>
<p>Schießt du gerne mit Spatzen auf Kanonen? Wenn du den String nicht weiter verarbeiten willst, brauchst du ihn auch nicht anzulegen.</p>
</blockquote>
<p>Ich weiß ja - sollte nur eine &quot;Hinführung auf das folgende Beispiel&quot; sein.<br />
Mir sind nur sehr wenige Programme bekannt, bei denen nur die Länge des Übergabeparameters (aber nicht dessen Inhalt) ausgewertet wird ....<br />
Und so habe ich ihn gleich auf die std::string-Schiene gesetzt.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188367</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:48:57 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 13:50:24 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Kann ich irgendwie den Kommandozeilenparameter (oder dann String) von ASCII in Unicode umwandeln?</p>
<p>Bisher habe ich ihn intern mit L&quot;test&quot; simuliert (als Unicode), bekomme ihn jetzt aber als ASCII...</p>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188370</guid><dc:creator><![CDATA[Matg40]]></dc:creator><pubDate>Thu, 07 Dec 2006 13:50:24 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Mon, 11 Dec 2006 07:33:35 GMT]]></title><description><![CDATA[<p>Eventuell helfen dir diese beiden Links:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39492.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39492.html</a><br />
<a href="http://www.kharchi.de/cpp_strings.html" rel="nofollow">http://www.kharchi.de/cpp_strings.html</a></p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188371</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Mon, 11 Dec 2006 07:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 15:04:30 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
<p>Besonders der zweite Link hat mir sehr weitergeholfen.</p>
<p>Ich habe es jetzt folgendermaßen gelöst:</p>
<p>void <strong>w</strong>main(int argc, char **argv)<br />
{</p>
<p>...</p>
<p>int textLength = wcslen((wchar_t*) argv[1]);</p>
<p>int textLengthBytes = textLength *2;</p>
<p>...</p>
<p>}</p>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188417</guid><dc:creator><![CDATA[Matg40]]></dc:creator><pubDate>Thu, 07 Dec 2006 15:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Thu, 07 Dec 2006 19:13:54 GMT]]></title><description><![CDATA[<p>wmain ist aber nur bei MS vorhanden (also kein Standard) und wenn dann sollte argv auch vom Typ wchar_t* sein laut msdn. Außerdem sollte der Rückgabewert von main immer int sein.<br />
main: Program Startup: <a href="http://msdn2.microsoft.com/en-us/library/6wd819wh.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/6wd819wh.aspx</a></p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188557</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 07 Dec 2006 19:13:54 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Fri, 08 Dec 2006 06:18:41 GMT]]></title><description><![CDATA[<p>Danke für die Infos!</p>
<p>Momentan probier ich noch verschiedene Kombinationen aus, da ich in main() einmal Unicode verarbeiten muss (das obige Problem) und einmal ASCII...</p>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1188711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1188711</guid><dc:creator><![CDATA[Matg40]]></dc:creator><pubDate>Fri, 08 Dec 2006 06:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Sat, 09 Dec 2006 12:30:52 GMT]]></title><description><![CDATA[<p>Die frage ist, welche unicode codierung du verwenden möchtest <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>
<p>denn es gibt das UCS2(was unter windows wchar_t entspricht), UCS4, UTF-8(ist eine multibyte codierung -&gt; ein zeichen besteht aus mehreren bytes/chars), UTF-16 UTF-32</p>
<p>Wenn du unicode eh nur zur ausgabe oder zum lesen/schreiben von dateien verwenden möchtest, dann langt auch das standart main (int main (int, char**))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189071</guid><dc:creator><![CDATA[ss]]></dc:creator><pubDate>Sat, 09 Dec 2006 12:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to sizeof mit Kommandozeilenparameter on Mon, 11 Dec 2006 06:15:17 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich verwende wahrscheinlich UCS2 (da ich mit wchar_t arbeiten konnte) und muss es einmal in eine Textdatei schreiben. Ansonsten benötige ich ASCII z.B. für einen Eintrag in einer Zip-Datei.</p>
<p>Wenn ich wmain() verwende, klappt das mit der Textdatei, aber beim Namen des Eintrags wird immer nur das erste Zeichen übernommen (auch wenn ich es anzeigen lasse)...</p>
<p>MfG</p>
<p>Matg40</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189869</guid><dc:creator><![CDATA[Matg40]]></dc:creator><pubDate>Mon, 11 Dec 2006 06:15:17 GMT</pubDate></item></channel></rss>