<?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[kbhit() und getch() plattformunabhängig]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Gibt es eine plattformunabhängige Lösung für kbhit() und getch()?</p>
<p>Aktuelle umsetzung:</p>
<pre><code class="language-cpp">#ifdef _WIN32   
char getinput()
{
	if(kbhit())
	{        
		return getch();
	}

    return 0;	
}
//Linux-Version
#else		
char getinput()
{
	//initscr ();
	//keypad (stdscr, TRUE);
	//noecho();

	if(kbhit())
	{        
		return getchar();
		//return (char)getch();
	}

    return 0;	
}

//da kbhit in der conio.h von Windows enthalten ist, muss diese unter Linux selbst
//implementiert werden
int kbhit(void)
{
	struct termios oldt, newt;
	int ch;
	int oldf;

	tcgetattr(STDIN_FILENO, &amp;oldt);
	newt = oldt;
	newt.c_lflag &amp;= ~(ICANON | ECHO);
	tcsetattr(STDIN_FILENO, TCSANOW, &amp;newt);
	oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
	fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);

	ch = getchar();

	tcsetattr(STDIN_FILENO, TCSANOW, &amp;oldt);
	fcntl(STDIN_FILENO, F_SETFL, oldf);

	if(ch != EOF)
	{
	ungetc(ch, stdin);
	return 1;
	}

	return 0;
}
#endif
</code></pre>
<p>Ich persönlich würde eine eiheitliche Lösung vorziehen. Gibt es sowas?</p>
<p>Bin für jeden Vorschlag dankbar!</p>
<p>Gruß<br />
WAR][FIRE</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242300/kbhit-und-getch-plattformunabhängig</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 02:18:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242300.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Jun 2009 10:11:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 10:11:19 GMT]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Gibt es eine plattformunabhängige Lösung für kbhit() und getch()?</p>
<p>Aktuelle umsetzung:</p>
<pre><code class="language-cpp">#ifdef _WIN32   
char getinput()
{
	if(kbhit())
	{        
		return getch();
	}

    return 0;	
}
//Linux-Version
#else		
char getinput()
{
	//initscr ();
	//keypad (stdscr, TRUE);
	//noecho();

	if(kbhit())
	{        
		return getchar();
		//return (char)getch();
	}

    return 0;	
}

//da kbhit in der conio.h von Windows enthalten ist, muss diese unter Linux selbst
//implementiert werden
int kbhit(void)
{
	struct termios oldt, newt;
	int ch;
	int oldf;

	tcgetattr(STDIN_FILENO, &amp;oldt);
	newt = oldt;
	newt.c_lflag &amp;= ~(ICANON | ECHO);
	tcsetattr(STDIN_FILENO, TCSANOW, &amp;newt);
	oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
	fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);

	ch = getchar();

	tcsetattr(STDIN_FILENO, TCSANOW, &amp;oldt);
	fcntl(STDIN_FILENO, F_SETFL, oldf);

	if(ch != EOF)
	{
	ungetc(ch, stdin);
	return 1;
	}

	return 0;
}
#endif
</code></pre>
<p>Ich persönlich würde eine eiheitliche Lösung vorziehen. Gibt es sowas?</p>
<p>Bin für jeden Vorschlag dankbar!</p>
<p>Gruß<br />
WAR][FIRE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719497</guid><dc:creator><![CDATA[WAR**FIRE]]></dc:creator><pubDate>Tue, 02 Jun 2009 10:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 21:19:10 GMT]]></title><description><![CDATA[<p>Er.<br />
Hatten wir das nicht gerade erst?<br />
Postest du immer alles doppelt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719992</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 02 Jun 2009 21:19:10 GMT</pubDate></item><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 21:39:21 GMT]]></title><description><![CDATA[<p>es gab dort keine direkte Antwort!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720004</guid><dc:creator><![CDATA[WAR**FIRE]]></dc:creator><pubDate>Tue, 02 Jun 2009 21:39:21 GMT</pubDate></item><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 21:49:27 GMT]]></title><description><![CDATA[<p>Es gibt nicht auf jeder Plattform ein Keyboard =&gt; es kann niicht auf jeder Plattfomr kbhit() geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720011</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 02 Jun 2009 21:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 21:51:22 GMT]]></title><description><![CDATA[<p>WAR][FIRE schrieb:</p>
<blockquote>
<p>es gab dort keine direkte Antwort!</p>
</blockquote>
<p>Wieso holst du dann nicht diesen Thread nach oben und fragst nochmals nach? Vielleicht war grad niemand online, der eine Antwort bereit hatte und als er dann schlussendlich online war, war der Thread auf Seite 2 oder noch weiter zurück.</p>
<p>Absolut kein Grund gleich einen neuen Thread zu eröffnen.</p>
<p>Ich weiss übrigens auch keine sinnvolle Lösung, welche nicht gleich zusätzlich ein riesiges weiteres Framework nach sich ziehen würde.</p>
<p>Allerdings ist die Frage auch da, ob es denn unbedingt so gelöst werden muss? Bei Platformunabhängigkeit muss man manchmal gewisse Einschränkungen hinnehmen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720013</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 02 Jun 2009 21:51:22 GMT</pubDate></item><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 22:24:49 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Es gibt nicht auf jeder Plattform ein Keyboard =&gt; es kann niicht auf jeder Plattfomr kbhit() geben.</p>
</blockquote>
<p>Naja, kbhit() könnte man auf solchen Plattformen durchaus mit &quot;return 0;&quot; implementieren. Oder alternativ dem User-Programmer die Möglichkeit bieten den nötigen Input selbst zu &quot;injecten&quot;.</p>
<p>Es gibt auch nicht auf jeder Plattform eine Konsole, was aber den C und C++ Standard nicht daran hindert, Funktionen zu definieren, die mit der Konsole arbeiten.</p>
<pre><code class="language-cpp">printf(&quot;Schlechtes Argument ;^)\n&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1720026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720026</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 02 Jun 2009 22:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to kbhit() und getch() plattformunabhängig on Tue, 02 Jun 2009 22:53:01 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>WAR][FIRE schrieb:</p>
<blockquote>
<p>es gab dort keine direkte Antwort!</p>
</blockquote>
<p>Wieso holst du dann nicht diesen Thread nach oben und fragst nochmals nach? Vielleicht war grad niemand online, der eine Antwort bereit hatte und als er dann schlussendlich online war, war der Thread auf Seite 2 oder noch weiter zurück.</p>
<p>Absolut kein Grund gleich einen neuen Thread zu eröffnen.</p>
<p>Ich weiss übrigens auch keine sinnvolle Lösung, welche nicht gleich zusätzlich ein riesiges weiteres Framework nach sich ziehen würde.</p>
<p>Allerdings ist die Frage auch da, ob es denn unbedingt so gelöst werden muss? Bei Platformunabhängigkeit muss man manchmal gewisse Einschränkungen hinnehmen.</p>
<p>Grüssli</p>
</blockquote>
<p>Arg verdammt! Ich hatte deswegen ja schon extra einen Thread aufgemacht... Hatte irgendwie im Hinterkopf, dass das blos eine kleine Frage in einem anderen Thread von mir war.</p>
<p>Von daher Entschuldigung <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>Gruß<br />
WAR][FIRE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720036</guid><dc:creator><![CDATA[WAR**FIRE]]></dc:creator><pubDate>Tue, 02 Jun 2009 22:53:01 GMT</pubDate></item></channel></rss>