<?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[Problem mit Variablen]]></title><description><![CDATA[<p>Hi @all<br />
Ich hab bei der folgenden Func das Problem das der Rest von &quot;Buffer&quot; nicht an &quot;Preis&quot; übergeben wird der Compiler zeigt keinen Fehler an.</p>
<p>thx im vorraus</p>
<p>P.S. Ich Programmiere erste seit c.a einen Halben jahr also nicht über schlechten still wunder ^^</p>
<pre><code class="language-cpp">bool such(ifstream&amp; stream,char str1[256] )
{
     int posstern, next;
     char buffer[512];
     char stern[2] = &quot;#&quot;;
     char dings[2] ;
     while(stream.getline(buffer,sizeof(buffer)) )
     {
         char tmp1[256],tmp2[256];
         strncpy(tmp1,str1,sizeof(tmp1)-1);
         strncpy(tmp2,buffer,sizeof(tmp2)-1);
         for(int i = 0;i &lt; sizeof(str1);i++)
         {
               if(isupper(str1[i])) str1[i]=tolower(str1[i])   ;
         }
         for(int i = 0;i &lt; sizeof(buffer);i++)
         {
               if(isupper(buffer[i])) buffer[i]=tolower(buffer[i])   ;
         }
         if(strncmp(str1,buffer,4) == 0)
         {
             for(int i = 0 ;i &lt; sizeof(buffer);i++)
             {
                     dings[1] = buffer[i]  ;
                     if(strncmp(dings,stern,1)==0)
                     {
                                  posstern = i ;
                                  cout&lt;&lt;&quot;i = &quot;&lt;&lt;i&lt;&lt;endl;
                     }
             }
             for(int i = 0; i &lt; posstern;i++)
             {
                     carname[i]= buffer[i];
             }
             for(int i = posstern; i &lt; sizeof(buffer);i++)
             {
                     preis[i]= buffer[i];  //Wird nicht übergeben
             }
         //strncpy(str1,tmp1,sizeof(str1)-1);
         //strncpy(str2,tmp2,sizeof(str2)-1);
         return true;
         }
         else
         {
         return false ;
         }
         }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/195037/problem-mit-variablen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 20:15:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195037.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Oct 2007 07:57:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Variablen on Sat, 13 Oct 2007 07:57:23 GMT]]></title><description><![CDATA[<p>Hi @all<br />
Ich hab bei der folgenden Func das Problem das der Rest von &quot;Buffer&quot; nicht an &quot;Preis&quot; übergeben wird der Compiler zeigt keinen Fehler an.</p>
<p>thx im vorraus</p>
<p>P.S. Ich Programmiere erste seit c.a einen Halben jahr also nicht über schlechten still wunder ^^</p>
<pre><code class="language-cpp">bool such(ifstream&amp; stream,char str1[256] )
{
     int posstern, next;
     char buffer[512];
     char stern[2] = &quot;#&quot;;
     char dings[2] ;
     while(stream.getline(buffer,sizeof(buffer)) )
     {
         char tmp1[256],tmp2[256];
         strncpy(tmp1,str1,sizeof(tmp1)-1);
         strncpy(tmp2,buffer,sizeof(tmp2)-1);
         for(int i = 0;i &lt; sizeof(str1);i++)
         {
               if(isupper(str1[i])) str1[i]=tolower(str1[i])   ;
         }
         for(int i = 0;i &lt; sizeof(buffer);i++)
         {
               if(isupper(buffer[i])) buffer[i]=tolower(buffer[i])   ;
         }
         if(strncmp(str1,buffer,4) == 0)
         {
             for(int i = 0 ;i &lt; sizeof(buffer);i++)
             {
                     dings[1] = buffer[i]  ;
                     if(strncmp(dings,stern,1)==0)
                     {
                                  posstern = i ;
                                  cout&lt;&lt;&quot;i = &quot;&lt;&lt;i&lt;&lt;endl;
                     }
             }
             for(int i = 0; i &lt; posstern;i++)
             {
                     carname[i]= buffer[i];
             }
             for(int i = posstern; i &lt; sizeof(buffer);i++)
             {
                     preis[i]= buffer[i];  //Wird nicht übergeben
             }
         //strncpy(str1,tmp1,sizeof(str1)-1);
         //strncpy(str2,tmp2,sizeof(str2)-1);
         return true;
         }
         else
         {
         return false ;
         }
         }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1384248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384248</guid><dc:creator><![CDATA[NatKingCole]]></dc:creator><pubDate>Sat, 13 Oct 2007 07:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablen on Sat, 13 Oct 2007 08:45:29 GMT]]></title><description><![CDATA[<p>vielleicht variablen <em>posstern</em> und <em>next</em> mit =0 initialisieren<br />
und bei den strcopy-Zeilen ist das -1 wohl überflüssig?<br />
wieso ist stern überhaupt 2 Zeichen lang? char stern='*' oder so reicht. genau wie bei dings.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384256</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Sat, 13 Oct 2007 08:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablen on Sat, 13 Oct 2007 09:48:13 GMT]]></title><description><![CDATA[<p>Vermutlich sind <em>stern</em> und <em>dings</em> als char-arrays initialisiert, damit sie beim zeichenkettenvergleich verwendet werden können.</p>
<p>Ich halte (persönlich) allein den Zweck dieser Funktion für absolut fragwürdig (von der Bezeichnung mal abgesehen). Offensichtlich soll hier versucht werden zu überprüfen, ob eine Zeichenkette (char*) in einem Eingabestrom (hier std::ifstream) vorhanden ist. Den Rest habe ich mir nicht mehr angeschaut, weil ich ad hoc nicht durchblicken konnte/wollte.</p>
<p>Um eine Zeichenkette in einer anderen Zeichenkette zu suchen, verwendet man in C++ die Methode std::string::find. Diese gibt die Position der gefundenen Zeichenkette zurück. Konnte die Zeichenkette nicht gefunden werden, so wird die Konstante std::string::npos zurückgeben.</p>
<p>Hinweis: Die Header-Datei string muss eingebunden werden.</p>
<pre><code class="language-cpp">std::string quellstring(&quot;Hier wird was gesucht&quot;);
std::string suchstring(&quot;was&quot;);
int pos = quellstring.find(suchstring);
</code></pre>
<p>EDIT: Der Zeichenkettenvergleich von std::string erfolgt intuitiv, da der Vergleichsoperator entsprechend überladen wurden:</p>
<pre><code class="language-cpp">std::string a(&quot;Alpha&quot;);
std::string b(&quot;Bravo&quot;);
std::string c(&quot;Bravo&quot;);

a == b; // =&gt; false
b == c; // =&gt; true
a != c; // =&gt; true
</code></pre>
<p>@OP:<br />
Du kommst aus C ?<br />
Was ist überhaupt der Zweck deiner Funktion?</p>
<p>Grüße...</p>
<p>Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384276</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Sat, 13 Oct 2007 09:48:13 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablen on Sat, 13 Oct 2007 10:09:13 GMT]]></title><description><![CDATA[<p>also sin der func is es einen Eingegeben text mit einer Zeile aus einer Datei zu vergleichen wenn diese Gleich sind soll die Zeile bei '#' getrennt werden und der teil vor '#' an die variable autoname und der rest nach '#' soll an preis übergeben werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384285</guid><dc:creator><![CDATA[NatKingCole]]></dc:creator><pubDate>Sat, 13 Oct 2007 10:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablen on Sat, 13 Oct 2007 10:27:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool search(std::ifstream&amp; stream, const std::string&amp; find, std::pair&lt;std::string, double&gt;&amp; dest)
{
	std::string tmp;
	while (std::getline(stream, tmp)) 
	{ 
		std::size_t pos = tmp.find(find); 
		if (pos == std::string::npos) continue;
		pos = tmp.find_last_of('#');
		if (pos == std::string::npos) throw std::runtime_error(&quot;price not found&quot;);
		std::istringstream ss(tmp.substr(pos + 1));
		double price = 0.0;
		ss &gt;&gt; price;
		if (!ss) throw std::runtime_error(&quot;invalid datatype for price&quot;);
		dest = std::make_pair(tmp.substr(0, pos), price);
		return true;
	}
	return false;
}
</code></pre>
<p>Bliblablu ... so macht die Funktion was du haben wolltest <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Erst Zeile einlesen ... dann gucken ob das drin steht was du suchst ... wenn ja, dann nach # suchen. Das was hinter # steht soll der Preis sein =&gt; in double umwandeln. Wenn # nicht gefunden wird oder die Umwandlung fehlschlägt tritt ein Ausnahmezustand ein ... dann noch das was wir rausgefunden haben an dest übergeben und fertig.</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;utility&gt;
#include &lt;stdexcept&gt;
</code></pre>
<p>... sollten alle Sachen drin sein, die die Funktion braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384296</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 13 Oct 2007 10:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Variablen on Sat, 13 Oct 2007 16:30:19 GMT]]></title><description><![CDATA[<p>cool thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384510</guid><dc:creator><![CDATA[NatKingCole]]></dc:creator><pubDate>Sat, 13 Oct 2007 16:30:19 GMT</pubDate></item></channel></rss>