<?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[probleme mit string]]></title><description><![CDATA[<p>hi,<br />
es soll einer Funktion (send) ein String übergeben werden. Der vorher mit Eingaben gefüllt wird aber irgendwie glaub ich das der String leer ist, seht euch das mal bitte an vielleicht versteht jemand wo mein Fehler liegt und kann mir helfen.</p>
<pre><code class="language-cpp">abfrage = true;

string Eingabe(void)
{

  string Eingabe;  
  char func_taste;
  if (abfrage)
  {
   cout &lt;&lt; &quot;Senden: &quot;;
   abfrage = false;
   }

          if (kbhit()){
              char Zeichen = func_taste = getch();
              Eingabe += Zeichen;
              cout &lt;&lt; Zeichen;

          if (func_taste == 13)
          {        
                send(s,Eingabe.c_str(),strlen(Eingabe.c_str()),0);
                abfrage = true;
                   }
              }
        return Eingabe;  
}
</code></pre>
<p>Danke für jede Hilfe</p>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/124111/probleme-mit-string</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 21:55:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/124111.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Oct 2005 01:33:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to probleme mit string on Mon, 24 Oct 2005 01:35:07 GMT]]></title><description><![CDATA[<p>hi,<br />
es soll einer Funktion (send) ein String übergeben werden. Der vorher mit Eingaben gefüllt wird aber irgendwie glaub ich das der String leer ist, seht euch das mal bitte an vielleicht versteht jemand wo mein Fehler liegt und kann mir helfen.</p>
<pre><code class="language-cpp">abfrage = true;

string Eingabe(void)
{

  string Eingabe;  
  char func_taste;
  if (abfrage)
  {
   cout &lt;&lt; &quot;Senden: &quot;;
   abfrage = false;
   }

          if (kbhit()){
              char Zeichen = func_taste = getch();
              Eingabe += Zeichen;
              cout &lt;&lt; Zeichen;

          if (func_taste == 13)
          {        
                send(s,Eingabe.c_str(),strlen(Eingabe.c_str()),0);
                abfrage = true;
                   }
              }
        return Eingabe;  
}
</code></pre>
<p>Danke für jede Hilfe</p>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/899686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/899686</guid><dc:creator><![CDATA[Alexander Heit]]></dc:creator><pubDate>Mon, 24 Oct 2005 01:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Mon, 24 Oct 2005 03:42:43 GMT]]></title><description><![CDATA[<p>Was genau, soll die Funktion machen?<br />
Du übergibst send immer nur ein Zeichen, nämlich char(13), was auch immer das ist.<br />
Das ist natürlich nicht sichtbar, da alle Zeichen kleiner als 32 Steuerzeichen sind.<br />
Was du wahrscheinlich machen willst, ist alle Zeichen in den String speichern und wenn du ein char(13) drückst, dann soll er gesendet werden.<br />
Dazu musst du aber alles in einer Schleife packen.</p>
<pre><code class="language-cpp">abfrage = true;

string Eingabe(void)
{
  string Eingabe;  
  char func_taste;
  if (abfrage)
  {
    cout &lt;&lt; &quot;Senden: &quot;;
    abfrage = false;
  }
  while ((func_taste = getch()) != 13) Eingabe += func_taste; // 13 wird nicht eingtragen
  Eingabe += func_taste; // jetzt wird noch das char(13) hinten angehängt
  cout &lt;&lt; Eingabe;
  send(s,Eingabe.c_str(),strlen(Eingabe.c_str()),0);
  abfrage = true;
  return Eingabe;  
}
</code></pre>
<p>So macht das für mich nur Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/899688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/899688</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Mon, 24 Oct 2005 03:42:43 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Mon, 24 Oct 2005 06:17:59 GMT]]></title><description><![CDATA[<p>imhotep schrieb:</p>
<blockquote>
<p>Du übergibst send immer nur ein Zeichen, nämlich char(13), was auch immer das ist.</p>
</blockquote>
<p>char(13) ist das Newline, auch bekannt als '\n' <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>
<p>Zu Optimierung wäre es übrigens noch günstiger, statt &quot;strlen(s.c_tr())&quot; gleich &quot;s.size()&quot; zu verwenden, die liefert das selbe Ergebnis, ohne den String nochmal durchscannen zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/899716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/899716</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 24 Oct 2005 06:17:59 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Mon, 24 Oct 2005 07:13:44 GMT]]></title><description><![CDATA[<p>ne ist es nicht es ist '\r', '\n' ist nämlich 10.<br />
Bei Windowsdateien ist das Zeilenende mit &quot;\r\n&quot; codiert.<br />
Zur Optimierung wäre es am besten gleich gets() zumachen, weil die eine ganze Zeile einliest.<br />
Oder man mach cin &gt;&gt; Eingabe, da wir hier ja anscheinend auch von C++ reden und getc/gets C ist.</p>
<p>--------------------<br />
Keep on smiling <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/899760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/899760</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Mon, 24 Oct 2005 07:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Mon, 24 Oct 2005 13:59:16 GMT]]></title><description><![CDATA[<p>imhotep schrieb:</p>
<blockquote>
<p>Zur Optimierung wäre es am besten gleich gets() zumachen, weil die eine ganze Zeile einliest.</p>
</blockquote>
<p>bloß kein gets verwenden! da gibt es nämlich keine überprüfung, ob der buffer schon voll ist. da ist std::istream::getline() bzw. std::getline() aus &lt;string&gt; besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900072</guid><dc:creator><![CDATA[terraner]]></dc:creator><pubDate>Mon, 24 Oct 2005 13:59:16 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Tue, 25 Oct 2005 23:04:03 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">abfrage = true;

void Eingabe(void)
{

  string Eingabe;  
  char func_taste, Zeichen;
  if (abfrage)
  {
   cout &lt;&lt; &quot;Senden: &quot;;
   abfrage = false;
   }

          if (kbhit()){
              char Zeichen = func_taste = getch();
              Eingabe += Zeichen;
              cout &lt;&lt; Zeichen;

          if (func_taste == 13)
          {        
                send(s,Eingabe.c_str(),strlen(Eingabe.c_str()),0);
                abfrage = true;
                   }
              }

}
</code></pre>
<p>So erstmal das ist eine Funktion die in einer Schleife läuft mit dem char func_taste prüfe ich ob die Enter Taste gedrückt wurde, ist dies der Fall soll der String der vorher gefüllt wurde der Funktion (send) übergeben werden. Ich will immer nur ein Zeichen einlesen damit das Programm während des einlesens nicht stehen bleibt sondern in der Hauptschleife weiterläuft da fällt std::cin schon mal aus und auch getline() müsste blockieren wenn mich nicht alles irrt damit bin ich mir nicht sicher aber das wollte ich eigentlich nicht wissen kann mir jemand sagen warum der string Eingabe leer ist wenn er es denn ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900771</guid><dc:creator><![CDATA[Alexander Heit]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:04:03 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Tue, 25 Oct 2005 23:12:49 GMT]]></title><description><![CDATA[<p>So was hatte ich mir fast dacht, dass du extern eine Schleife laufen lässt.<br />
Was deine Funktion trotzdem falsch macht, ist, dass sie immer nur ein Zeichen sendet, denn Eingabe wird bei Beginn der Funktion erzeugt und nach dem Beenden gelöscht.<br />
Entweder du machst Eingabe global, so wie abfrage oder, was mir besser gefallen würde, du über gibst es an die Funktion (am besten als Referenz). Dann musst du Eingabe nach dem senden leeren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900779</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:12:49 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Tue, 25 Oct 2005 23:22:48 GMT]]></title><description><![CDATA[<p>imhotep schrieb:</p>
<blockquote>
<p>So was hatte ich mir fast dacht, dass du extern eine Schleife laufen lässt.<br />
Was deine Funktion trotzdem falsch macht, ist, dass sie immer nur ein Zeichen sendet, denn Eingabe wird bei Beginn der Funktion erzeugt und nach dem Beenden gelöscht.<br />
Entweder du machst Eingabe global, so wie abfrage oder, was mir besser gefallen würde, du über gibst es an die Funktion (am besten als Referenz). Dann musst du Eingabe nach dem senden leeren.</p>
</blockquote>
<p>Okay selbst wenn ich Eingabe global mache läuft es nicht Eingabe bleibt bei der übergabe trotzdem leer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900782</guid><dc:creator><![CDATA[Alexander Heit]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:22:48 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Wed, 26 Oct 2005 14:06:54 GMT]]></title><description><![CDATA[<p>könnte sich nochmal bitte jemand mein problem ansehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901217</guid><dc:creator><![CDATA[Alexander Heit]]></dc:creator><pubDate>Wed, 26 Oct 2005 14:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit string on Wed, 26 Oct 2005 14:20:12 GMT]]></title><description><![CDATA[<p>Alexander Heit schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void Eingabe(void)
{
  string Eingabe;
  //...
</code></pre>
</blockquote>
<p>Daß dein Compiler das anstandslos schluckt? Erstaunlich.</p>
<p>Ansonsten solltest du nicht die &quot;bool abfrage&quot; global verfügbar machen, sondern den String mit den gespeicherten Daten:</p>
<pre><code class="language-cpp">string in_text;bool abfrage;
void Eingabe()
{
  char Zeichen;//wozu du zwei Variablen für den selben Inhalt brauchst, ist mir schleierhaft
  if(abfrage)
  {
    cout &lt;&lt; &quot;Senden: &quot;;
    abfrage = false;
  }

  if(kbhit()){
    Zeichen = getch();
    in_text += Zeichen;
    cout &lt;&lt; Zeichen;

    if (func_taste == 13)
    {        
      send(s,in_text.c_str(),strlen(in_text.c_str()),0);
    }
  }
}

int main()
{
  //...
  abfrage=true;
  do
  {
    Eingabe();
    if(abfrage) in_text=&quot;&quot;;
  } while(!ende())
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/901228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901228</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 26 Oct 2005 14:20:12 GMT</pubDate></item></channel></rss>