<?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[Pfad per drag &amp;amp; drop in Konsolenfenster lesen]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>ich würde gerne eine Datei in die Konsole ziehen und diesen Pfad dann einlesen. Jetzt hab ich das so probiert:</p>
<pre><code>char c[256];
cout &lt;&lt; &quot;Bitte Datei per Drag &amp; Drop in die Konsole ziehen.&quot; &lt;&lt; endl;
cin.get(c,256);
</code></pre>
<p>Beim ersten Mal funktioniert das auch super, will ich das dann aber mit der nächsten Datei machen erscheint der Pfad nicht mehr in der Konsole.</p>
<p>So hab ichs auch schon probiert:</p>
<pre><code>string s;
cout &lt;&lt; &quot;Bitte Datei per Drag &amp; Drop in die Konsole ziehen.&quot; &lt;&lt; endl;
cin &gt;&gt; s;
</code></pre>
<p>Dabei steht in s nachher aber nur der halbe Pfad <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="😞"
    /></p>
<p>Das Problem ist bestimmt total simpel, aber ich steh echt aufm Schlauch <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="🙄"
    /></p>
<p>Schon mal vielen Dank für Eure Hilfe! <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/327651/pfad-per-drag-amp-drop-in-konsolenfenster-lesen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 23:53:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327651.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Aug 2014 10:09:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pfad per drag &amp;amp; drop in Konsolenfenster lesen on Mon, 25 Aug 2014 10:09:20 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>ich würde gerne eine Datei in die Konsole ziehen und diesen Pfad dann einlesen. Jetzt hab ich das so probiert:</p>
<pre><code>char c[256];
cout &lt;&lt; &quot;Bitte Datei per Drag &amp; Drop in die Konsole ziehen.&quot; &lt;&lt; endl;
cin.get(c,256);
</code></pre>
<p>Beim ersten Mal funktioniert das auch super, will ich das dann aber mit der nächsten Datei machen erscheint der Pfad nicht mehr in der Konsole.</p>
<p>So hab ichs auch schon probiert:</p>
<pre><code>string s;
cout &lt;&lt; &quot;Bitte Datei per Drag &amp; Drop in die Konsole ziehen.&quot; &lt;&lt; endl;
cin &gt;&gt; s;
</code></pre>
<p>Dabei steht in s nachher aber nur der halbe Pfad <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="😞"
    /></p>
<p>Das Problem ist bestimmt total simpel, aber ich steh echt aufm Schlauch <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="🙄"
    /></p>
<p>Schon mal vielen Dank für Eure Hilfe! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2414825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2414825</guid><dc:creator><![CDATA[antje]]></dc:creator><pubDate>Mon, 25 Aug 2014 10:09:20 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad per drag &amp;amp; drop in Konsolenfenster lesen on Mon, 25 Aug 2014 10:58:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::string c;
std::cout &lt;&lt; &quot;Bitte Datei per Drag &amp; Drop in die Konsole ziehen.&quot; &lt;&lt; std::endl;
std::getline(std::cin,c);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2414831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2414831</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 25 Aug 2014 10:58:17 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad per drag &amp;amp; drop in Konsolenfenster lesen on Mon, 25 Aug 2014 11:14:28 GMT]]></title><description><![CDATA[<p>Ne Manni, vor einem <code>'\n'</code> bekommt <code>std::cin</code> nichts zu sehen - und bei einer solchen Drag&amp;Drop-Operation wird keines mitgeschickt. Der Benutzer müsste selbst Enter drücken.</p>
<p>Mit Standard C++ wird das nichts. Bei &quot;Konsolenfenster&quot; geh ich einfach mal von Windows aus.</p>
<p>Möglichkeiten, die einem in den Sinn kommen könnten:</p>
<ul>
<li>Das Konsolenfenster subclassen und selbst auf WM_DROPFILES reagieren. Njet. Subklassen kann man nur Fenster, die dem eigenen Prozess gehören. Das Konsolenfenster gehört deinem Prozess aber nicht.</li>
<li>Cross-Process &quot;Subclassing&quot; mit Hooks. Grausig, und ich weiß nicht, ob das mit Konsolenfenstern funktioniert.</li>
<li>Ein eigenes transparentes Fenster über die Konsole legen. Hässlich.</li>
</ul>
<p>Was funktioniert:<br />
Davon ausgehen, daß Pfade die Leerzeichen enthalten in &quot;&quot; eingeschlossen sind, und bei anderen darauf spekulieren, daß die Zeichenfolge per Drag&amp;Drop in einem Rutsch kommt:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;

#include &lt;conio.h&gt;

int main()
{
	std::cout &lt;&lt; &quot;Bitte Dateien per Drag &amp; Drop in die Konsole ziehen. (Beenden mit [Enter].)\n&quot;;

	std::vector&lt; std::string &gt; files;

	for( int ch = _getch(); ch != '\r'; ch = _getch() ) {

		std::string file_name;

		if( ch == '\&quot;' ) {  // path containing spaces. read till next '&quot;' ...

			while( ( ch = _getch() ) != '\&quot;' )
				file_name += ch;

		} else {  // path not containing spaces ... read as long as characters are coming rapidly ...

			file_name += ch;

			while( _kbhit() )
				file_name += _getch();
		}

		files.push_back( file_name );
	}

	std::cout &lt;&lt; &quot;Sie haben folgende Dateien in das Konsolenfenster gezogen:\n&quot;;

	for( auto &amp; i : files )
		std::cout &lt;&lt; i &lt;&lt; '\n';
}
</code></pre>
<p>PS: Vergiss char-Arrays für Zeichenketten. Nimm <code>std::string</code> !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2414833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2414833</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 25 Aug 2014 11:14:28 GMT</pubDate></item></channel></rss>