<?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[Zeitabfrage]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe da ein kleines Problem, ich möchte eine einfache Zeitabfrage machen.<br />
Und zwar immer wenn ich auf eine Taste drücke, soll die Zeitdifferenz ausgegeben werden.<br />
Ich möchte dazu die Funktion GetLocalTime verwenden.<br />
Es ist sicher ganz einfach, aber ich komme nicht drauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272707/zeitabfrage</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 14:39:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272707.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Aug 2010 16:36:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 16:36:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe da ein kleines Problem, ich möchte eine einfache Zeitabfrage machen.<br />
Und zwar immer wenn ich auf eine Taste drücke, soll die Zeitdifferenz ausgegeben werden.<br />
Ich möchte dazu die Funktion GetLocalTime verwenden.<br />
Es ist sicher ganz einfach, aber ich komme nicht drauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943469</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Mon, 23 Aug 2010 16:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 16:39:28 GMT]]></title><description><![CDATA[<p>Warum GetLocalTime und nicht time?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943470</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Mon, 23 Aug 2010 16:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 16:42:13 GMT]]></title><description><![CDATA[<p>ja, geht auch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943472</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Mon, 23 Aug 2010 16:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:08:24 GMT]]></title><description><![CDATA[<p>und wie macht man das nun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943482</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:11:34 GMT]]></title><description><![CDATA[<p>Du wartest, bis eine Taste gedrückt wurde. Den Zeitpunkt merkst du dir und wartest auf den nächsten Tastendruck. Dann gibst du die Differenz aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943483</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:23:27 GMT]]></title><description><![CDATA[<p>die Vorgengsweise ist mir schon klar, aber ich weiß nicht wie man immer den vorletzten Wert speichert. Also wie ein Schieberegister oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943490</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:23:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:25:19 GMT]]></title><description><![CDATA[<p>Schlag mal Variablen in deinem Buch nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943492</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:25:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:26:01 GMT]]></title><description><![CDATA[<p>Du nimmst eine Variable mit dem Namen letzterWert und weist der den Wert der letzten Zeitmessung zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943493</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:42:08 GMT]]></title><description><![CDATA[<p>ja, das habe ich schon gemacht, das Problem ist, dass diese Variable immer überschrieben wird wenn wieder die taste gedrückt wird. ich müßte also 2 variablen verwenden die immer wieder überschrieben werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943503</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:42:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 17:48:11 GMT]]></title><description><![CDATA[<p>Thorsten777 schrieb:</p>
<blockquote>
<p>ja, das habe ich schon gemacht, das Problem ist, dass diese Variable immer überschrieben wird wenn wieder die taste gedrückt wird. ich müßte also 2 variablen verwenden die immer wieder überschrieben werden</p>
</blockquote>
<p><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="😕"
    /> Zeig mal Code.</p>
<p>Vorgehen allgemein: Du hast zwei Variablen, in eine schreibst du am Anfang die Zeit in eine andere am Ende. Dann bildest du die Differenz. Was du das jetzt überschreiben willst, verstehe ich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943506</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Aug 2010 17:48:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 19:28:52 GMT]]></title><description><![CDATA[<pre><code>SYSTEMTIME st, lt;

	for (;;)
	{

	GetLocalTime(&amp;lt);

	cin &gt;&gt; eingabe;

	int letzterwert = lt.wMilliseconds;

	cout &lt;&lt; &quot;aktueller Wert-letzter Wert &quot; &lt;&lt; lt.wMilliseconds-letzterwert &lt;&lt; endl;

	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1943552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943552</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Mon, 23 Aug 2010 19:28:52 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 20:06:27 GMT]]></title><description><![CDATA[<p><code>letzterwert = lt.wMilliseconds;</code><br />
Nächste Zeile:<br />
<code>lt.wMilliseconds-letzterwert</code><br />
Hmm, was mag da wohl rauskommen?</p>
<p>Vielleicht solltest du nochmal die Reihenfolge überdenken.</p>
<p>Noch zwei weitere Tipps:<br />
1. Ja, die Variablen die du in der Schleife definierst werden bei jedem Durchlauf überschrieben. Schlecht für eine Variable die sich den Wert vom letzten Durchlauf merken soll.<br />
2. Wenn du die Variablendeklaration von letzterwert vor die Schleife legst, kannst du dem Variablen auch schon einen vernünftigen Startwert geben, so dass beim ersten Durchlauf schon ein vernünftiges Ergebnis rauskommt.</p>
<p>Mit diesen drei Hinweisen und ein wenig nachdenken solltest du das hinbekommen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943563</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Aug 2010 20:06:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Mon, 23 Aug 2010 20:11:16 GMT]]></title><description><![CDATA[<p>Mach es doch einfach so:</p>
<pre><code class="language-cpp">SYSTEMTIME start, end;

while (true) {
    GetLocalTime(&amp;start);
    getchar();
    GetLocalTime(&amp;end);
    int differenz = end.wMilliseconds - start.wMilliseconds   
    cout &lt;&lt; &quot;Differenz = &quot; &lt;&lt; differenz &lt;&lt; endl;

}
</code></pre>
<p>Ungestet und keine Ahnung ob das so genau funktioniert. Aber das Prinzip müsste stimmen.</p>
<p>Und die Erklärung:<br />
Du ermittelst die aktuelle Zeit und speicherst sie in start.<br />
Dann wartest du, bis der Benutzer eine Taste drückt.<br />
Dann ermittelst du wieder die aktuelle Zeit und speicherst sie in end.<br />
Dann berechnest du die Differenz und gibst sie aus.</p>
<p>Ich hoffe du hast es jetzt verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943564</guid><dc:creator><![CDATA[Pikkolini]]></dc:creator><pubDate>Mon, 23 Aug 2010 20:11:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Tue, 24 Aug 2010 06:25:45 GMT]]></title><description><![CDATA[<p>Ja, das funktioniert, danke.<br />
Aber die Millisekunden alleine reichen mir nicht, ist zu kurz.<br />
Die Dauer soll ein paar Sekunden sein aber die Genauigkeit in ms.</p>
<p>Ich habe schon versucht Sekunden und Millisekunden zu addieren,aber beim Überlauf kommts dann zu negativen Werten, und ich müßte dann einiges berücksichtigen.</p>
<p>Gibts da vielleicht eine Funktion die das berechnet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943647</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Tue, 24 Aug 2010 06:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Tue, 24 Aug 2010 07:13:12 GMT]]></title><description><![CDATA[<p>Es gibt eine passendere Funktion: GetTickCount(). Damit hast du nur einen Wert, mit dem du bequem rechnen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943665</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 24 Aug 2010 07:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Tue, 24 Aug 2010 08:35:22 GMT]]></title><description><![CDATA[<p>super, danke</p>
<p>jetzt zum nächsten Problem<br />
ich habe eine Client-Server-Anwendung, der Client sendet in Abständen von Sekunden eine Nachricht.<br />
Diese kommt auch am Server an. Nun möchte ich immer dann wenn eine neue Nachricht kommt die Zeit messen.Aber wie mache ich so eine Abfrage, geht das mit getbuf()?</p>
<pre><code>buf[rc]='\0';
          // daten ausgeben und eine antwort senden
          printf(&quot;Client %d hat folgendes gesandt: %s\n&quot;,i,buf);

	//Aufrufen der Funktion zur Zeitauslesung

	DWORD time1;
    time1=GetTickCount();
// ............................Hier soll abgefragt werden ob Client eine neue Nachricht gesendet hat
	DWORD time2;
    time2=GetTickCount();
    cout &lt;&lt;&quot; Zeit = &quot; &lt;&lt; (time2-time1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1943693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943693</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Tue, 24 Aug 2010 08:35:22 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Tue, 24 Aug 2010 17:44:24 GMT]]></title><description><![CDATA[<p>Kann mir da jetzt jemand weiterhelfen?</p>
<p>hier mal der vollständige Abschnitt:</p>
<pre><code>// prüfen wlecher client sockets im fd_set sind
    for(i=0;i&lt;MAX_CLIENTS;i++)
    {
      if(clients[i]==INVALID_SOCKET)
      {
        continue; // ungültiger socket, d.h. kein verbunder client an dieser position im array
      }
      if(FD_ISSET(clients[i],&amp;fdSet))
      {
        rc=recv(clients[i],buf,256,0);
        // prüfen ob die verbindung geschlossen wurde oder ein fehler auftrat

        if(rc==0 || rc==SOCKET_ERROR)
        {
          printf(&quot;Client %d hat die Verbindung geschlossen\n&quot;,i);
          closesocket(clients[i]); // socket schliessen         
          clients[i]=INVALID_SOCKET; // seinen platz wieder freigeben
        }
        else
        {

        // daten ausgeben und eine antwort senden
     printf(&quot;Client %d hat folgendes gesandt: %s\n&quot;,i,buf);

	//Aufrufen der Funktion zur Zeitauslesung

	DWORD time1;
	DWORD time2;
    time1=GetTickCount();
// ............................Hier soll abgefragt werden ob Client eine neue Nachricht gesendet hat
	time2=GetTickCount();
	cout &lt;&lt;&quot; Zeit = &quot; &lt;&lt; (time2-time1);
</code></pre>
<p>also bei Eingabe über Tastatur könnte man getchar() verwenden, aber es soll ja auf eine Nachricht des Clients gewartet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943964</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Tue, 24 Aug 2010 17:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Thu, 26 Aug 2010 10:29:55 GMT]]></title><description><![CDATA[<p><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="🙄"
    /> hat da niemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944566</guid><dc:creator><![CDATA[Thorsten777]]></dc:creator><pubDate>Thu, 26 Aug 2010 10:29:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitabfrage on Thu, 26 Aug 2010 19:18:10 GMT]]></title><description><![CDATA[<p>Nö, ich habe keine Ahnung, was du jetzt willst.<br />
Wie deine Nachrichten aufgebaut sind, musst du schon selbst wissen. Und dann überprüfst du eben, ob bereits eine vollständige Nachricht empfangen wurde.<br />
Bis dahin musst du die empfangenen Daten zwischenspeichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944774</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 26 Aug 2010 19:18:10 GMT</pubDate></item></channel></rss>