<?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[char * mit enum wert vergleichen]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>ich lese aus einem Configfile für eine serielle Schnittstelle einen String aus. Diesen String möchte ich dann vergleichen mit einem Belegung im Enumerator:</p>
<pre><code class="language-cpp">enum BaudRateType {
    BAUD2400,
    BAUD4800,
    BAUD9600,
    BAUD14400,             
    BAUD19200,
    BAUD38400,
    BAUD56000,    
    BAUD57600,
    BAUD115200,

};
</code></pre>
<p>Beispiel:<br />
Im Text File steht irgendwo &quot;Baudrate = 9600&quot;. Nun wird 9600 in eine Variable als char* gespeichert. Nun soll eine Abfrage kommen die schaut welchen Wert 9600 im Enumerator mit dem Namen BaudRateType hat. (Hier =2 da BAUD2400 =0, BAUD4800 =1, BAUD9600=2). Die 2 ist ein ganzzahliger Wert.</p>
<p>Weiss jemand einen Tipp?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204630/char-mit-enum-wert-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 18:51:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204630.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Feb 2008 15:00:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:01:11 GMT]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>ich lese aus einem Configfile für eine serielle Schnittstelle einen String aus. Diesen String möchte ich dann vergleichen mit einem Belegung im Enumerator:</p>
<pre><code class="language-cpp">enum BaudRateType {
    BAUD2400,
    BAUD4800,
    BAUD9600,
    BAUD14400,             
    BAUD19200,
    BAUD38400,
    BAUD56000,    
    BAUD57600,
    BAUD115200,

};
</code></pre>
<p>Beispiel:<br />
Im Text File steht irgendwo &quot;Baudrate = 9600&quot;. Nun wird 9600 in eine Variable als char* gespeichert. Nun soll eine Abfrage kommen die schaut welchen Wert 9600 im Enumerator mit dem Namen BaudRateType hat. (Hier =2 da BAUD2400 =0, BAUD4800 =1, BAUD9600=2). Die 2 ist ein ganzzahliger Wert.</p>
<p>Weiss jemand einen Tipp?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449849</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:08:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Bastel dir ein switch mit den enums, welches dir den richtigen String zurückgibt.</p>
<pre><code class="language-cpp">std::string getBaudString(BaudRateType type)
{
  switch(type)
  {
    case BAUD2400: return &quot;2400&quot;;
    case BAUD4800: return &quot;4800&quot;;
//usw.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1449858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449858</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:08:33 GMT]]></title><description><![CDATA[<p><code>std::map</code></p>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449859</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:09:09 GMT]]></title><description><![CDATA[<p>oder das. <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/1449860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449860</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:21:00 GMT]]></title><description><![CDATA[<p>traceman schrieb:</p>
<blockquote>
<p>...Diesen String möchte ich dann vergleichen mit einem Belegung ...</p>
</blockquote>
<p>Dann tu das doch auch .... <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="😕"
    /><br />
Wo steht denn da was von &quot;char*&quot; ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449870</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:26:38 GMT]]></title><description><![CDATA[<p>Danke! Aber gibts da keine bessere methode? Die ganzen Werte z.B. 9600 und viele andere stehen in einer global.h. Wäre uncool wenn ich die ganzen werte in eine switch anweisung reinschreiben müsste?! Ich muss doch irgendwie an die 2 kommen?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449873</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:50:32 GMT]]></title><description><![CDATA[<p>(Pseudocode)</p>
<pre><code class="language-cpp">if (configFileString==&quot;Baudrate =&quot;) thread_prirec.baudRate = BAUD9600;
</code></pre>
<p>so klappts zwar aber die Abfrage muss einzeln erfolgen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449875</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:35:09 GMT]]></title><description><![CDATA[<p>--- hier stand nix wichtiges ---</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449877</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:37:08 GMT]]></title><description><![CDATA[<p>du fragst ja gar nirgends ab, was hinter &quot;Baudrate =&quot; steht.<br />
Soll heißen, thread_prirec.baudRate wird immer auf BAUD9600 gesetzt werden...</p>
<p>mit <code>std::map</code> ginge es wohl so:</p>
<pre><code class="language-cpp">#include &lt;map&gt;

//...
std::map&lt;string, BaudRateType&gt; translator;
translator[&quot;Baudrate = 9600&quot;] = BAUD9600;
translator[&quot;Baudrate = 4800&quot;] = BAUD4800;
...

thread_prirec.baudRate = translator[configFileString];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1449883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449883</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:37:08 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:38:04 GMT]]></title><description><![CDATA[<p>hmm also irgendwie bin ich heut nicht mehr auf der höhe...</p>
<p>muss es wohl oder übel über eine abfrage machen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449884</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:38:04 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:39:25 GMT]]></title><description><![CDATA[<p>Diese Art der map-Abfrage geht schief, wenn der übergebene String keinen vorhandenen Schlüssel darstellt.<br />
Da ist mir ein switch mit default-Behandlung lieber. <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/1449885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449885</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:39:25 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 15:41:22 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<p>du fragst ja gar nirgends ab, was hinter &quot;Baudrate =&quot; steht.<br />
Soll heißen, thread_prirec.baudRate wird immer auf BAUD9600 gesetzt werden...</p>
<p>mit <code>std::map</code> ginge es wohl so:</p>
<pre><code class="language-cpp">#include &lt;map&gt;

//...
std::map&lt;string, BaudRateType&gt; translator;
translator[&quot;Baudrate = 9600&quot;] = BAUD9600;
translator[&quot;Baudrate = 4800&quot;] = BAUD4800;
...

thread_prirec.baudRate = translator[configFileString];
</code></pre>
</blockquote>
<p>Ok..aber ich hab schon eine längere Liste.... Kann der nicht schauen ob String 9600 == BaudRateType.BAUD9600 ist? Eine Abfrage wäre schon aufwendig... Wie kann ich denn allgemein auf Werte eines Enumerators zugreifen? Nur über die Namen oder auch über einen Index?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449888</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Tue, 05 Feb 2008 15:41:22 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 16:01:34 GMT]]></title><description><![CDATA[<p>traceman schrieb:</p>
<blockquote>
<p>Ok..aber ich hab schon eine längere Liste.... Kann der nicht schauen ob String 9600 == BaudRateType.BAUD9600 ist? Eine Abfrage wäre schon aufwendig... Wie kann ich denn allgemein auf Werte eines Enumerators zugreifen? Nur über die Namen oder auch über einen Index?</p>
</blockquote>
<p>Du musst erstmal verstehen was ein enum unter C++ ist.</p>
<p>a) Textvergleich ist unmöglich, da ein Enum-Wert nur ein symbolischer Wert ist (Zur Laufzeit ist es ein Zahlenwert).<br />
b) Ein Indexzugriff auf ein Enum ist ebenso nicht möglich, da es im wesentlichen nur eine unsortierte Sammlung von Konstanten darstellt die einmalig durch den Compiler aufgelöst wird.</p>
<p>Die Lösung über die Map mag dir nicht gefallen, sie stellt aber mit den sinnvollsten Ansatz dar.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449901</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 05 Feb 2008 16:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Tue, 05 Feb 2008 18:47:01 GMT]]></title><description><![CDATA[<p>traceman schrieb:</p>
<blockquote>
<p>... soll eine Abfrage kommen die schaut welchen Wert 9600 im Enumerator mit dem Namen BaudRateType hat. (Hier =2 da BAUD2400 =0, BAUD4800 =1, BAUD9600=2). Die 2 ist ein ganzzahliger Wert.<br />
Weiss jemand einen Tipp?</p>
</blockquote>
<pre><code class="language-cpp">int main()
{
    // Du musst die Baudrate aus dem String in einen int umwandeln.
	// diesen  int-Wert vergleichst Du dann in einer Schleife mit den
	// Werten im BaudRateType-Array. Die gesuchte &quot;ganze Zahl&quot; entspricht 
	// dann dem Index aus der for-Schleife! 
	const int BaudRaten = 9; 
	int BaudRateType[BaudRaten] = {
    2400,
    4800,
    9600,
    14400,            
    19200,
    38400,
    56000,    
    57600,
    115200
    };
	int BaudRateAusString = 9600;

	int index;

	for (index = 0; index &lt; BaudRaten; index++)
	{
		if (BaudRateType[index] == BaudRateAusString)
			break;
	}
	// index hat ab hier den Wert 2

   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1450012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450012</guid><dc:creator><![CDATA[willy]]></dc:creator><pubDate>Tue, 05 Feb 2008 18:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 08:10:45 GMT]]></title><description><![CDATA[<p>Aha, vielen Dank (auch für die letzte Lösung)... ich seh schon: Ich komm wohl mit dem Enum so nicht weiter. Dann werde ich wohl oder übel auf eine map zurückgreifen. Im Prinzip kann ich mich ja auch die relevanten Parameter einschränken dann wird die Liste nicht so lang.<br />
Danke und Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450239</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 08:17:23 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>was musst Du denn in Abhängigkeit vom Input machen ? Bisweilen bietet sich für sowas auch ein Funktionspointer an, indem man bei der Initialisierung der map gleich den string mit der auszuführenden Funktion verknüpft.<br />
Damit spart man sich den switch und hat diese Verknüpfung nur an einer relevanten Stelle und nicht an 2 (map-Init &amp; switch). Besonders praktisch, wenn neue Funktionen dazukommen.<br />
Wenn allerdings die Funktionalität zu marginal ist, um sie in eine separate Funktion zu packen, lohnt sich das nicht.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450250</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 08:17:51 GMT]]></title><description><![CDATA[<p>Keine Alternative? Müsste man aus dem eingelesenen String nur noch die Zahl extrahieren.</p>
<pre><code class="language-cpp">enum BaudRateType {
    BAUD2400    =   2400,
    BAUD4800    =   4800,
    BAUD9600    =   9600,
    BAUD14400   =  14400,             
    BAUD19200   =  19200,
    BAUD38400   =  38400,
    BAUD56000   =  56000,    
    BAUD57600   =  57600,
    BAUD115200  = 115200,

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1450251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450251</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:17:51 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 08:31:53 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Keine Alternative? Müsste man aus dem eingelesenen String nur noch die Zahl extrahieren.</p>
<pre><code class="language-cpp">enum BaudRateType {
    BAUD2400    =   2400,
    BAUD4800    =   4800,
    BAUD9600    =   9600,
    BAUD14400   =  14400,             
    BAUD19200   =  19200,
    BAUD38400   =  38400,
    BAUD56000   =  56000,    
    BAUD57600   =  57600,
    BAUD115200  = 115200,

};
</code></pre>
</blockquote>
<p>Ich habe ja eine Funktion z.B. InitSerialBus(xxxx) und das xxxx (vom Typ BaudRateType) soll dynamisch ersetzt werden mit dem inhalt eines strings (dieser string kommt aus einem txt config file). Also bringen mir die festgelegten werte leider auch nichts <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450259</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:31:53 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 08:46:48 GMT]]></title><description><![CDATA[<p>traceman schrieb:</p>
<blockquote>
<p>...<br />
Ich habe ja eine Funktion z.B. InitSerialBus(xxxx) und das xxxx (vom Typ BaudRateType) soll dynamisch ersetzt werden mit dem inhalt eines strings (dieser string kommt aus einem txt config file). Also bringen mir die festgelegten werte leider auch nichts <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="😕"
    /></p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <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>Also ehrlich gesagt, klingt das danach, als ob Du das alles viel zu kompliziert machst und mit einer normalen &quot;string2Int&quot;-Konvertierung fertig wärst.<br />
Kannst mal unter &quot;Einmal String nach Zahl und zurück&quot; hier im Forum nachsehen.<br />
Oder nimmst direkt:</p>
<pre><code class="language-cpp">istringstream ist(configFileString);
   ist &gt;&gt; thread_prirec.baudRate;
   InitSerialBus(thread_prirec.baudRate);
</code></pre>
<p>&quot;configFileString&quot; ist hier natürlich nur ein Beispiel; in Deinem Code wirst Du vermutlich jede ConfigFile-Zeile zerlegen in einen ParameterTyp- und einen -Wert-String ... und &quot;ist&quot; muss dann mit dem Wert-String initialisiert werden.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450282</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 08:55:18 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">InitSerialBus(thread_prirec.baudRate);
</code></pre>
</blockquote>
<p>Das Problem ist dass genau an der Stelle thread_prirec.baudRate ein Enumeratortyp stehen musss (in dem Fall also z.B. BAUD9600) und kein int oder string</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450289</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 09:08:36 GMT]]></title><description><![CDATA[<p>traceman schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">InitSerialBus(thread_prirec.baudRate);
</code></pre>
</blockquote>
<p>Das Problem ist dass genau an der Stelle thread_prirec.baudRate ein Enumeratortyp stehen musss (in dem Fall also z.B. BAUD9600) und kein int oder string</p>
</blockquote>
<p>Also ist das eine vorgegebene Funktion, die damit auch ParameterBereich und vermutlich sogar den Typen (enum) vorgibt.<br />
Ergo: Es ist doch festgelegt und Du fährst mit der map gut.</p>
<p>BTW: &quot;map&quot; ist hier sogar ziemlich wörtlich zu verstehen: Du &quot;mappst&quot; (im Sinne einer Abbildung) nämlich Deinen Parametertyp (string, Werte von Dir festgelegt) auf den der genutzten Schnittstelle (enums).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450297</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 06 Feb 2008 09:08:36 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 09:11:27 GMT]]></title><description><![CDATA[<p>traceman schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">InitSerialBus(thread_prirec.baudRate);
</code></pre>
</blockquote>
<p>Das Problem ist dass genau an der Stelle thread_prirec.baudRate ein Enumeratortyp stehen musss (in dem Fall also z.B. BAUD9600) und kein int oder string</p>
</blockquote>
<p>Nicht desto Trotz ist ein enum ein Integerwert, und wenn du im Enum die Werte richtig verschlüsselt hast (Sprich z.b. BAUD9600 = 9600), läßt sich - vorausgesetzt es hat immer den gleichen Aufbau &quot;BAUD&lt;Zahl&gt;&quot; später über diesen Wert ein String generieren. Der Enum selbst ist freilich aber kein String.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450299</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 06 Feb 2008 09:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 09:16:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">InitSerialBus((BaudRateType)meinErmittelterBaudInt);
</code></pre>
<p>müsste einwandfrei funktionieren. Wenn natürlich der Enum vordefiniert ist, wovon ich jetzt einmal ausgehe, wenn die Funktion nicht von dir ist, dann kannst du natürlich auch deren Wertigkeit nicht ändern, oder?</p>
<p>Wenn dem so ist, dann müsstest du die ja nur einlesen und den Zahlenwert auf den Enum-Mappen. Und zum &quot;mappen&quot; eignet sich eine &quot;map&quot; bestens. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1450305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450305</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 06 Feb 2008 09:16:21 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 09:23:15 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>... wenn die Funktion nicht von dir ist, dann kannst du natürlich auch deren Wertigkeit nicht ändern, oder?</p>
</blockquote>
<p>thats the problem! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1450310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450310</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Wed, 06 Feb 2008 09:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 09:29:48 GMT]]></title><description><![CDATA[<p>Dann reicht doch eine simple Map. Um es flexibel zu halten würde ich da auf std::map&lt;unsigned int, BaudRateType&gt; zurückgreifen. Dort fügst du dann die ganzen Vorgaben ein und bist damit durch. baudMap[2400] = BAUD2400 etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450316</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 06 Feb 2008 09:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to char * mit enum wert vergleichen on Wed, 06 Feb 2008 09:30:27 GMT]]></title><description><![CDATA[<p>Ich hab jetzt noch genau nachgeschaut was für Baudraten der Receiver überhaupt kann. Die Auswahl beschränkt sich damit auf 6 Werte und die vergleiche ich dann mit einer Abfrage über map.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450317</guid><dc:creator><![CDATA[traceman]]></dc:creator><pubDate>Wed, 06 Feb 2008 09:30:27 GMT</pubDate></item></channel></rss>