<?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[Komandozeilenparameter übergeben und Laufzeit messen]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein c++ Prog geschrieben was Fibonaccizahlen ausrechnet.<br />
Das sieht zur Zeit wie folgt aus:</p>
<pre><code class="language-cpp">// dua_u3.1a.cpp: Hauptprojektdatei.

#include &lt;iostream&gt;
using namespace std;

//Funktionsprototypen
unsigned int fib(unsigned int);

int main()
{
	unsigned int n;
	cin &gt;&gt; n;
	cout&lt;&lt;fib(n);
	return 0;
}
//Funktionen
unsigned int fib(unsigned int zahl)
	{
	if(zahl == 0)
		return zahl;
	if(zahl == 1)
		return zahl;
	return fib(zahl-1) + fib(zahl-2);
	}
</code></pre>
<p>Ich hab jetzt 2 Probleme.Das erste, ich will das n nicht eingelesen wird sondern per Komandozeilenparameter übergeben werden soll.<br />
Es soll dan wie folgt aussehen: &quot;fibonacci n&quot;.<br />
Das zweite,ich würde gern die Laufzeit messen die es braucht um die Fiboncci-Folge zu berechnen.<br />
Bei den beiden Problemen weiß ich nicht wie ich diese Implementieren soll.<br />
Für Ratschläge wär ich dankbar.<br />
Gruß steve</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240275/komandozeilenparameter-übergeben-und-laufzeit-messen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 00:16:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240275.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 May 2009 14:16:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 14:16:37 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein c++ Prog geschrieben was Fibonaccizahlen ausrechnet.<br />
Das sieht zur Zeit wie folgt aus:</p>
<pre><code class="language-cpp">// dua_u3.1a.cpp: Hauptprojektdatei.

#include &lt;iostream&gt;
using namespace std;

//Funktionsprototypen
unsigned int fib(unsigned int);

int main()
{
	unsigned int n;
	cin &gt;&gt; n;
	cout&lt;&lt;fib(n);
	return 0;
}
//Funktionen
unsigned int fib(unsigned int zahl)
	{
	if(zahl == 0)
		return zahl;
	if(zahl == 1)
		return zahl;
	return fib(zahl-1) + fib(zahl-2);
	}
</code></pre>
<p>Ich hab jetzt 2 Probleme.Das erste, ich will das n nicht eingelesen wird sondern per Komandozeilenparameter übergeben werden soll.<br />
Es soll dan wie folgt aussehen: &quot;fibonacci n&quot;.<br />
Das zweite,ich würde gern die Laufzeit messen die es braucht um die Fiboncci-Folge zu berechnen.<br />
Bei den beiden Problemen weiß ich nicht wie ich diese Implementieren soll.<br />
Für Ratschläge wär ich dankbar.<br />
Gruß steve</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705355</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Mon, 04 May 2009 14:16:37 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 14:20:07 GMT]]></title><description><![CDATA[<p>du musst die signatur deiner main-fkt folgendermaßen abändern:<br />
<code>int main(int argc, char* argv[])</code></p>
<p>argc sagt dir, wie viele argumente übergeben wurden - wobei argv[0] immer die working-directory ist - also müsstest du gucken, ob argc == 2 ist. Wenn ja, dann guckst du, was in argv[1] steht...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705356</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 04 May 2009 14:20:07 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 14:20:43 GMT]]></title><description><![CDATA[<p>An die Kommandozeilenargumente kommst du über die Parameter der <code>main()</code> -Funktion.</p>
<p>Diese bestehen (wenn nicht <code>void</code> ) aus einem <code>int</code> , der die Anzahl Argumente angibt, und einem <code>char**</code> , der auf ein dynamisches Array von C-Strings ( <code>char*</code> ) zeigt. Die Parameter kannst du wie normale Funktionsparameter verwenden.</p>
<p>Hier zum Beispiel eine einfache Applikation, die alle übergebenen Parameter der Reihe nach nummeriert auf der Konsole ausgibt:</p>
<pre><code class="language-cpp">int main(int argc, char** argv)
{
    for (int i = 0; i &lt; argc; ++i)
    {
        std::cout &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; argv[i] &lt;&lt; std::endl;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1705358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705358</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 04 May 2009 14:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 14:31:33 GMT]]></title><description><![CDATA[<p>Ja ok, aber sagen wir ma ich nehme den wert der in argv[1] drin steht.<br />
Denn er müsste ja dann mein übergebener Parameter sein.<br />
Dann ist er doch immer noch ein wert vom typ Char oder?<br />
Ich brauch ja zur berechnung der fibonacci-zahlen int bzwm unsigned int....<br />
gruß steve</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705370</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Mon, 04 May 2009 14:31:33 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 14:36:04 GMT]]></title><description><![CDATA[<p>Nicht vom Typ <code>char</code> , sondern vom Typ <code>char*</code> , genauer ein C-String.</p>
<p>Mittels<a href="http://www.cplusplus.com/reference/iostream/stringstream/" rel="nofollow"> <code>std::stringstream</code> </a>kannst du umwandeln:</p>
<pre><code class="language-cpp">int main(int argc, char** argv)
{
    int Value;
    std::stringstream Stream;
    Stream &lt;&lt; argv[1];        // Argument einlesen
    Stream &gt;&gt; Value;          // in int konvertieren und unter Variable Value speichern
}
</code></pre>
<p>Im Link steht noch mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705375</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 04 May 2009 14:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 14:57:56 GMT]]></title><description><![CDATA[<p>Geht irgendwie nicht hab es umgeschrieben aber der Compiler meckert.<br />
Er meckert über das &quot;stringstream&quot;......<br />
Das Programm sieht jett so aus:</p>
<pre><code class="language-cpp">// dua_u3.1a.cpp: Hauptprojektdatei.
#include &lt;iostream&gt;
using namespace std;

//Funktionsprototypen
unsigned int fib(unsigned int);

int main(int argc, char *argv[])
{
unsigned int n;

	//wurden Parameter übergeben??
	if(argc &gt;= 1)
		{
		int value;
		stringstream Stream;
		Stream &lt;&lt;  argv[1];
		Stream &gt;&gt; value;
		n = value;
		}
	else
		{
		cin &gt;&gt; n;
		}

	cout&lt;&lt;fib(n);

	return 0;
}
//Funktionen
unsigned int fib(unsigned int zahl)
	{
	if(zahl == 0)
		return zahl;
	if(zahl == 1)
		return zahl;
	return fib(zahl-1) + fib(zahl-2);
	}
</code></pre>
<p>Jemand ne Idee?</p>
<p>Gruß Steve</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705377</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Mon, 04 May 2009 14:57:56 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 15:02:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;ctime&gt;
#include &lt;ofstream&gt;
#include &lt;string&gt;

struct Zeitmesser
{
private:
  const std::clock_t start;
  const std::string ausgabe_datei_name;

public:
  Zeitmesser(const std::string &amp;_ausgabe_datei_name) : ausgabe_datei_name(_ausgabe_datei_name), start(std::clock()) {}

  ~Zeitmesser()
  {
    std::ofstream ausgabe_datei (ausgabe_datei_name.c_str());
    ausgabe_datei &lt;&lt; std::clock() - start &lt;&lt; std::endl;
  }

int main(/*...*/)
{
  Zeitmesser bla(&quot;hier_steht_dann_drin_wie_lang_es_gedauert_hat.txt&quot;);
  /*
  ganz normales programm
  */
}
</code></pre>
<p>Wenn man möchte, kann man für die erste Zeile auch noch nen Makro anlegen - so wird es zumindest meistens gemacht</p>
<p>bb</p>
<p>PS: guck mal auf der seite - da steht auch drin, wie die datei heißt, die du includen musst, um stringstream zu nutzen... jz besser? ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705394</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 04 May 2009 15:02:14 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 15:07:02 GMT]]></title><description><![CDATA[<p>WINFO2105 schrieb:</p>
<blockquote>
<p>Geht irgendwie nicht hab es umgeschrieben aber der Compiler meckert.<br />
Er meckert über das &quot;stringstream&quot;......</p>
</blockquote>
<p>Bitte gib in Zukunft genauere Fehlermeldungen an. Und nein, er meckert nicht; sei froh, dass er diesen Fehler zur Komplierzeit erkennt. <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>In meinem Link steht etwas über die grundsätzliche Anwendung von StringStreams. Ich wollte zuerst nur den Link posten, aber dann habe ich noch einen Code zum besseren Verständnis geschrieben. Damit du wenigstens noch etwas dabei lernst, musst du noch herausfinden, welchen Header du benötigst. <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/1705402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705402</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 04 May 2009 15:07:02 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 15:08:46 GMT]]></title><description><![CDATA[<p>Ach stimmt da muss ja noch ne Datein includen,wo ich stringstream nutzte... <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="🙄"
    /><br />
Will das dann auf der Konsole ausgeben aber das geht ja dann auch grob so.<br />
Was ist den das dann für ne einheit?Sekunden oder Millisekunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705405</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Mon, 04 May 2009 15:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Mon, 04 May 2009 15:16:28 GMT]]></title><description><![CDATA[<p>kannst dir die klasse auch so umbauen, dass du ne referenz auf nen ofstream übergibst und dort eben std::cout übergeben, dann geht das auch ganz gut ^^</p>
<p>wie du die sekunden rausbekommst sollte hier ersichtlich sein:<br />
<a href="http://www.cplusplus.com/reference/clibrary/ctime/clock/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/ctime/clock/</a></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705414</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 04 May 2009 15:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Wed, 06 May 2009 11:35:51 GMT]]></title><description><![CDATA[<p>So hab jetzt alles hinbekommen.<br />
Ich hab die übergebenen Parameter mit atoi() konvertiert und bei der Zeiterfasung hab ich die &quot;time.h&quot; includet und dann so mit den darin enthaltenen Befehlen die Laufzeit gemessen. <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="😃"
    /><br />
Hier werden die Fibonacci-Zahlen von n1 bis n2 berechnet und die Laufzeit zum Schluss ausgegeben.<br />
Vollstänigkeitshalber hier noch ma der fertige Code:</p>
<pre><code class="language-cpp">#include &lt;time.h&gt;
#include &lt;iostream&gt;

using namespace std;

//Funktionsprototypen
unsigned int fib(unsigned int);

int main(int argc, char *argv[])
{
unsigned int n1;
unsigned int n2;
double time = 0.0;
double tstart;

	if(argc &gt; 1)
		{
		n1 = atoi(argv[1]);
		n2 = atoi(argv[2]);
		}
	else
		{
		cin &gt;&gt; n1;
		cin &gt;&gt; n2;
		}

	tstart = clock();
for( int i = n1; i &lt;= n2 ; i++)
	{
	cout&lt;&lt;fib(i)&lt;&lt;endl;
	}

	time += clock() - tstart;
	time = time / CLOCKS_PER_SEC;

	cout &lt;&lt; &quot;Laufzeit: &quot; &lt;&lt; time &lt;&lt; &quot; sekunden&quot; &lt;&lt; endl;

	return 0;
}
//Funktionen
unsigned int fib(unsigned int zahl)
	{
	if(zahl == 0)
		return zahl;
	if(zahl == 1)
		return zahl;
	return fib(zahl-1) + fib(zahl-2);
	}
</code></pre>
<p>Danek für die ganze Hilfe.<br />
MFG Steve</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706391</guid><dc:creator><![CDATA[WINFO2105]]></dc:creator><pubDate>Wed, 06 May 2009 11:35:51 GMT</pubDate></item><item><title><![CDATA[Reply to Komandozeilenparameter übergeben und Laufzeit messen on Wed, 06 May 2009 13:51:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;time.h&gt; //der header heißt &lt;ctime&gt;!
#include &lt;iostream&gt;

using namespace std;

//Funktionsprototypen
unsigned int fib(unsigned int); //hier mag es noch gehen, dass man beim prototypen die bezeichnung des parameters weglässt - solltest du dir aber sehr schnell abgewöhnen, weils einfach ma hässlich ist...

int main(int argc, char *argv[])
{
	unsigned int n1;
	unsigned int n2;

	if(argc &gt; 1) //na toll - wenn argc == 2 ist, ist die bedingung erfüllt und er will argv[2] lesen -&gt; BÄM
	{
		n1 = atoi(argv[1]);
		n2 = atoi(argv[2]);
	}
	else
	{
		cin &gt;&gt; n1;
		cin &gt;&gt; n2;
	}

	const clock_t start = clock();
	for( int i = n1; i &lt;= n2 ; i++)
	{
		cout&lt;&lt;fib(i)&lt;&lt;endl;
	}

	const clock_t end = clock();
	const float time = (end-start) / CLOCKS_PER_SEC;

	cout &lt;&lt; &quot;Laufzeit: &quot; &lt;&lt; time &lt;&lt; &quot; sekunden&quot; &lt;&lt; endl;

	return 0;
}
//Funktionen
unsigned int fib(unsigned int zahl)
{
	if(zahl == 0)
		return zahl;
	if(zahl == 1)
		return zahl;
	return fib(zahl-1) + fib(zahl-2);
}
</code></pre>
<p>so siehts scho bissl schöner aus, oder?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>PS: Da du auf std::stringstream verzichtet hast, hast du jz nen Problem:<br />
atoi gibt dir nen int zurück... du willst aber nen unsigned int...</p>
<p>eine alternative wäre <a href="http://www.cplusplus.com/reference/clibrary/cstdlib/atol/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdlib/atol/</a> und dann gucken, ob das ergebnis in nen unsigned int reinpasst und wenn, ja dann zuweisen, wenn nicht, exception werfen oder so...</p>
<p>oder du gehst einfach über std::stringstream - würd ich dir auch empfehlen....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706498</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 06 May 2009 13:51:33 GMT</pubDate></item></channel></rss>