<?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[argv in ifstram übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>mein Problem ist Folgendes:<br />
Ich möchte in der &quot;main&quot;, &quot;argv&quot; in eine Funktion &quot;number&quot; übergeben.<br />
Diese Funktion ist in einer externen Datei initialisiert und noch einmal in einer anderen Datei definiert.<br />
Wieso kann ich in &quot;number&quot; nicht ein &quot;ifstream&quot; Objekt mit &quot;argv&quot; erzeugen?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke gleich mal für jede Antwort!! <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>Hier mein Code:</p>
<p>main:</p>
<pre><code>#include &lt;iostream&gt;

int main(int argc, char * argv[])
{
	int n = number(argc, argv);
	std::cout &lt;&lt; n;
	system(&quot;Pause&quot;);
	return 0;
}
</code></pre>
<p>Atom.cpp:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

int number(int argc, char * argv[])
{
	ifstream inTxt(argv[1]);
	int n;
	inTxt &gt;&gt; n;
	inTxt.close();
	return n;
}
</code></pre>
<p>Atom.h</p>
<pre><code>#ifndef Atom_h___
#define Atom_h___

int number(int, char **);

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/324579/argv-in-ifstram-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 00:11:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324579.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Mar 2014 02:16:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 02:16:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>mein Problem ist Folgendes:<br />
Ich möchte in der &quot;main&quot;, &quot;argv&quot; in eine Funktion &quot;number&quot; übergeben.<br />
Diese Funktion ist in einer externen Datei initialisiert und noch einmal in einer anderen Datei definiert.<br />
Wieso kann ich in &quot;number&quot; nicht ein &quot;ifstream&quot; Objekt mit &quot;argv&quot; erzeugen?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke gleich mal für jede Antwort!! <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>Hier mein Code:</p>
<p>main:</p>
<pre><code>#include &lt;iostream&gt;

int main(int argc, char * argv[])
{
	int n = number(argc, argv);
	std::cout &lt;&lt; n;
	system(&quot;Pause&quot;);
	return 0;
}
</code></pre>
<p>Atom.cpp:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

int number(int argc, char * argv[])
{
	ifstream inTxt(argv[1]);
	int n;
	inTxt &gt;&gt; n;
	inTxt.close();
	return n;
}
</code></pre>
<p>Atom.h</p>
<pre><code>#ifndef Atom_h___
#define Atom_h___

int number(int, char **);

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2390475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390475</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 02:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 04:15:43 GMT]]></title><description><![CDATA[<p>&quot;kann nicht&quot; ist keine ausreichende fehlerbeschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390478</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Sun, 23 Mar 2014 04:15:43 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 08:21:08 GMT]]></title><description><![CDATA[<p>Was geht denn nicht? Compier kompiliert nicht, Linker linkt nicht, Datei nicht gefunden, Programm stürzt ab, Programm gibt die falsche Zahl aus...</p>
<p>Und möglichst die Fehlermeldung hier rein kopieren.</p>
<p>Ich rate mal, dass das Programm läuft, aber er findet die Datei nicht, inTxt &gt;&gt; n schlägt fehl und number gibt eine uninitialisierte Zahl zurück. Versuch mal sowas:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;exception&gt;

using namespace std;

int number(char *argv[]){
	ifstream inTxt(argv[1]);
	if (!inTxt)
		throw runtime_error(&quot;Failed opening file&quot;);
	int n;
	if (!inTxt &gt;&gt; n){
		inTxt.close(); //todo: RAII
		throw runtime_error(&quot;Failed reading file&quot;);
	}
	inTxt.close(); //todo: RAII
	return n;
}

int main(int argc, char *argv[]){
	try{
		int n = number(argv);
		std::cout &lt;&lt; n;
	}
	catch (exception &amp;e){
		std::cout &lt;&lt; &quot;Error: &quot; &lt;&lt; e.what() &lt;&lt; '\n';
	}
	system(&quot;Pause&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2390488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390488</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 23 Mar 2014 08:21:08 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 09:36:44 GMT]]></title><description><![CDATA[<p>Ein <code>#include &lt;Atom.h&gt;</code> in (vor) <code>main</code> wäre auch nicht schlecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390496</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Sun, 23 Mar 2014 09:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 09:55:18 GMT]]></title><description><![CDATA[<p>Also wie du schon gesagt hast</p>
<blockquote>
<p>inTxt &gt;&gt; n schlägt fehl und number gibt eine uninitialisierte Zahl zurück</p>
</blockquote>
<p>und wenn ich das &quot;iftream&quot; Objekt direkt mit &quot;input.txt&quot; als Parameter aufrufe, findet der Debugger es. Das heißt ich erhalte die richtige Zahl, wenn das Programm mit F5(Debbuging starten) starte. Andererseits erhalte ich trotzdem eine uninitialisierte Zahl, wenn ich die *.exe mit Doppelklick oder in der cmd im richtigen Ordner öffne.</p>
<p>Vieleicht hat es damit was zu tun, dass der Professor, gesagt hat wir sollen in den Projekt Eigenschaften &quot;Vorkompilierte Header nicht verwenden&quot; schalten.</p>
<p>Mit den Exceptions kenn ich mich leider noch nicht so aus.<br />
Wenn ich es trotzdem mache kommen diese Fehler:</p>
<p>Fehler 1 error C2061: Syntaxfehler: Bezeichner 'exception' c:\users\ &lt;Benutzername&gt; \documents\visual studio 2013\projects\test\test\main.cpp 11 1 test<br />
Fehler 2 error C2310: catch-Handler muss einen Typ angeben c:\users\ &lt;Benutzername&gt; \documents\visual studio 2013\projects\test\test\main.cpp 11 1 test<br />
Fehler 3 error C2065: 'e': nichtdeklarierter Bezeichner c:\users\ &lt;Benutzername&gt; \documents\visual studio 2013\projects\ &lt;Projektname&gt; \ &lt;Projektname&gt; \main.cpp 12 1 test<br />
Fehler 4 error C2228: Links von &quot;.what&quot; muss sich eine Klasse/Struktur/Union befinden. c:\users\ &lt;Benutzername&gt; \documents\visual studio 2013\projects\ &lt;Projektname&gt; \ &lt;Projektname&gt; \main.cpp 12 1 test<br />
Fehler 5 error C2317: Der 'try'-Block ab Zeile '7' besitzt keine catch-Handler c:\users\ &lt;Benutzername&gt; \documents\visual studio 2013\projects\ &lt;Projektname&gt; \ &lt;Projektname&gt; \main.cpp 14 1 test<br />
Fehler 6 error C2601: 'number': Lokale Funktionsdefinitionen sind unzulässig c:\users\ &lt;Benutzername&gt; \documents\visual studio 2013\projects\ &lt;Projektname&gt; \ &lt;Projektname&gt; \atom.cpp 10 1 test<br />
7 IntelliSense: Der Bezeichner &quot;&quot;exception&quot;&quot; ist nicht definiert. c:\Users\ &lt;Benutzername&gt; \Documents\Visual Studio 2013\Projects\ &lt;Projektname&gt; \ &lt;Projektname&gt; \Main.cpp 11 9 test</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390498</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 09:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:00:50 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/32185">@DirkB</a>:<br />
Das habe ich bei mir eigentlich drinnen stehen. Ich weiß auch nicht wieso ich das nicht mit reinkopiert hab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>...und DANKE für eure Antworten!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390499</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:01:47 GMT]]></title><description><![CDATA[<p>Entweder hast du #include &lt;exception&gt; vergessen oder kein using namespace std; oder das std:: vor std::exception vergessen.<br />
Weiterhin ist Visual Studio etwas komisch. Wenn du die exe über Visual Studio startest, dann ist der aktuelle Ordner nicht der exe-Ordner, sondern der Projektordner. Gib der exe mal einen absoluten Pfad, C:\temp\test.txt oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390500</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:01:47 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:43:20 GMT]]></title><description><![CDATA[<p>Ja, hat nur das &quot;std::&quot; gefehlt. <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>Jetzt habe ich das Problem, dass ich es unter F5 nicht mit Parameter debuggen kann.<br />
In der cmd wirft er die Exception und ich erhalte den cout stream inder Konsole: &quot;Error: Failed opening file&quot;</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390504</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:43:20 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:45:41 GMT]]></title><description><![CDATA[<p>Das ist doch gut.<br />
Der kann die Datei wirklich nicht finden.<br />
Gib mal einen absoluten Pfad an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390505</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:47:49 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Weiterhin ist Visual Studio etwas komisch. Wenn du die exe über Visual Studio startest, dann ist der aktuelle Ordner nicht der exe-Ordner, sondern der Projektordner.</p>
</blockquote>
<p>Das hat den Grund, dass sich Release und Debug das gleiche working_set_directory teilen. Ich finde das praktisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390506</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:50:23 GMT]]></title><description><![CDATA[<p>Da ändert sich leider nichts. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390507</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:51:05 GMT]]></title><description><![CDATA[<p>Du kannst im Projekt unter debug Aufrufparameter angeben und das working directory festlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390508</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 10:56:56 GMT]]></title><description><![CDATA[<p>Weiterhin in der cmd:<br />
Error: Failed opening file</p>
<p>Über F5 mit übergebenen Parameter:<br />
0</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390509</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 10:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 11:00:46 GMT]]></title><description><![CDATA[<p>So, ich habe jetzt dem Debugger auch de kompletten Pfad gegeben. jetzt kommt bei beiden:<br />
Error: Failed opening file</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390512</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 11:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 11:54:22 GMT]]></title><description><![CDATA[<p>Dann steht die Datei nicht dort oder in argv[1] steht nicht der Pfad (weil er z.B. Leerzeichen enthält).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390522</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 23 Mar 2014 11:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 11:57:22 GMT]]></title><description><![CDATA[<p>Habe das ganze jetzt nochmal neu gemacht.<br />
Dabei habe ich das *.txt Dokument wo anders hingetan. (Indem Pfad waren leerstellen <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>und n habe ich mit n initialisiert:</p>
<pre><code>int number(char *argv[]){
	ifstream inTxt(argv[1]);
	if (!inTxt)
		throw runtime_error(&quot;Failed opening file&quot;);
	int n=0;              //HIER!!!!!
	if (!inTxt &gt;&gt; n){
		inTxt.close(); //todo: RAII
		throw runtime_error(&quot;Failed reading file&quot;);
	}
	inTxt.close(); //todo: RAII
	return n;
}
</code></pre>
<p>output:<br />
0</p>
<p>Bitte helft mir <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="😞"
    /><br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390524</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 11:57:22 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 11:59:02 GMT]]></title><description><![CDATA[<blockquote>
<p>und n habe ich mit n initialisiert</p>
</blockquote>
<p>natürlich mit 0.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390525</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 11:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 12:02:30 GMT]]></title><description><![CDATA[<p>Und was steht in argv[1]?<br />
RAII macht der stream ganz alleine, ist ist weder was todo noch ist ein close notwendig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390527</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 23 Mar 2014 12:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 12:13:17 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>RAII macht der stream ganz alleine, ist ist weder was todo noch ist ein close notwendig.</p>
</blockquote>
<p>Das war auch glaub ich eher ein Scherz von nwp3.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390529</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 23 Mar 2014 12:13:17 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 12:19:43 GMT]]></title><description><![CDATA[<p>So, ich habe mir argv[1] ausgeben lassen.<br />
Ich hätte dem Debugger den Pfad ohne abschließendes Semikolon angeben müssen.</p>
<p>DANKE für eure Hilfe!!<br />
Es funzt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390531</guid><dc:creator><![CDATA[Alda]]></dc:creator><pubDate>Sun, 23 Mar 2014 12:19:43 GMT</pubDate></item><item><title><![CDATA[Reply to argv in ifstram übergeben on Sun, 23 Mar 2014 17:58:21 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>nwp3 schrieb:</p>
<blockquote>
<p>Weiterhin ist Visual Studio etwas komisch. Wenn du die exe über Visual Studio startest, dann ist der aktuelle Ordner nicht der exe-Ordner, sondern der Projektordner.</p>
</blockquote>
<p>Das hat den Grund, dass sich Release und Debug das gleiche working_set_directory teilen. Ich finde das praktisch.</p>
</blockquote>
<p>Der Begriff &quot;working_set_directory&quot; ist mir nicht bekannt.</p>
<p>Das was du meinst heisst &quot;working directory&quot;.<br />
Und dann gibt's noch den Begriff &quot;working set&quot; (Begriffserklärung bitte bei Interesse selbst ergoogeln).<br />
Aber &quot;working set directory&quot; gibt's - behaupte ich jetzt mal - nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390636</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 23 Mar 2014 17:58:21 GMT</pubDate></item></channel></rss>