<?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[#include &amp;lt;string&amp;gt; wird nicht erkannt]]></title><description><![CDATA[<p>Hallo liebe Community,<br />
beim Programmieren bin ich auf ein eher seltsames Problem gestoßen.<br />
Zunächst mal habe ich neben meiner main.cpp eine weitere datei surface.cpp erzeugt. Ich wollte ein wenig die Aufgabenbereiche trennen, um eine gut ersichtliche Struktur zu haben. Jetzt zum eigentlichen Problem. Ich brauche bei meiner surface.cpp zwischenzeitlich strings. Also habe ich mir nichts böses gedacht und folgendes Codefragment geschrieben</p>
<pre><code>#ifndef _string
#define _string
#include &quot;string.h&quot;
#endif
</code></pre>
<p>Wenn ich jetzt aber zum Beispiel eine Variable anlegen möchte</p>
<pre><code>std::string test
</code></pre>
<p>dann wird string direkt rot unterstrichen, mit der Information, dass string ihm nicht bekannt sei. Ich dachte zunächst, dass mein erster Codeteil fehlerhaft wäre. Aber wenn ich den oben beschriebenen Code 1 zu 1 in die main.cpp kopiere, funktioniert es.<br />
Vielleicht habt Ihr ja eine Idee, was ich da mal wieder verbockt habe ;-). Eine zusätzliche Information, ich benutze Visual Studios 2013.<br />
Ich danke auf jeden Fall für jeden hilfreichen Rat :-).<br />
Wünsche noch eine schönen Abend.<br />
LG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323074/include-lt-string-gt-wird-nicht-erkannt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 10:24:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323074.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Jan 2014 22:26:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 22:26:10 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,<br />
beim Programmieren bin ich auf ein eher seltsames Problem gestoßen.<br />
Zunächst mal habe ich neben meiner main.cpp eine weitere datei surface.cpp erzeugt. Ich wollte ein wenig die Aufgabenbereiche trennen, um eine gut ersichtliche Struktur zu haben. Jetzt zum eigentlichen Problem. Ich brauche bei meiner surface.cpp zwischenzeitlich strings. Also habe ich mir nichts böses gedacht und folgendes Codefragment geschrieben</p>
<pre><code>#ifndef _string
#define _string
#include &quot;string.h&quot;
#endif
</code></pre>
<p>Wenn ich jetzt aber zum Beispiel eine Variable anlegen möchte</p>
<pre><code>std::string test
</code></pre>
<p>dann wird string direkt rot unterstrichen, mit der Information, dass string ihm nicht bekannt sei. Ich dachte zunächst, dass mein erster Codeteil fehlerhaft wäre. Aber wenn ich den oben beschriebenen Code 1 zu 1 in die main.cpp kopiere, funktioniert es.<br />
Vielleicht habt Ihr ja eine Idee, was ich da mal wieder verbockt habe ;-). Eine zusätzliche Information, ich benutze Visual Studios 2013.<br />
Ich danke auf jeden Fall für jeden hilfreichen Rat :-).<br />
Wünsche noch eine schönen Abend.<br />
LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377773</guid><dc:creator><![CDATA[Aeron24]]></dc:creator><pubDate>Thu, 16 Jan 2014 22:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 22:47:23 GMT]]></title><description><![CDATA[<p>Warum hast du Include-Guards um das Include? Die gehören da nicht hin.</p>
<p>Warum willst du &lt;string&gt; als &quot;string&quot; inkludieren?</p>
<p>Wenn du Include-Guards verwendest, lass sie nicht mit Underscores anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377777</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Thu, 16 Jan 2014 22:47:23 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 23:03:45 GMT]]></title><description><![CDATA[<p>Vielen Dank für die schnelle Antwort ;-).</p>
<p>Also, ich habe die extra eingefügt, da dass vollständige Projekt immer mal wieder strings in verschiedenen .cpp dateien nutzt . An dieser stelle überprüfe ich, ob mein string.h nicht bereits früher mal includiert worden ist. Und normalerweise funktioniert das auch ;-).<br />
Aber selbst wenn ich ganz normal</p>
<pre><code>#include &lt;string&gt;
</code></pre>
<p>oder auch</p>
<pre><code>#include &quot;string.h&quot;
</code></pre>
<p>will es nicht funktionieren. Zumindest nicht in meiner neuen cpp. In der Main macht es keine Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377779</guid><dc:creator><![CDATA[Aeron24]]></dc:creator><pubDate>Thu, 16 Jan 2014 23:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 23:10:22 GMT]]></title><description><![CDATA[<p>Aeron24 schrieb:</p>
<blockquote>
<p>Also, ich habe die extra eingefügt, da dass vollständige Projekt immer mal wieder strings in verschiedenen .cpp dateien nutzt . An dieser stelle überprüfe ich, ob mein string.h nicht bereits früher mal includiert worden ist. Und normalerweise funktioniert das auch ;-).</p>
</blockquote>
<p>Ah, du hast also selbst eine string.h geschrieben? Dann packst du die Include-Guards an den Anfang und das Ende deiner eigenen string.h, nicht um das &quot;#include &quot;string.h&quot;. Include-Guards sind genau dafür gut, dass du dir beim includen keine Sorgen darum machen musst.</p>
<blockquote>
<p>Aber selbst wenn ich ganz normal</p>
<pre><code>#include &lt;string&gt;
</code></pre>
<p>oder auch</p>
<pre><code>#include &quot;string.h&quot;
</code></pre>
<p>will es nicht funktionieren. Zumindest nicht in meiner neuen cpp. In der Main macht es keine Probleme.</p>
</blockquote>
<p>Du hast hoffentlich um das #include nicht irgendwelche #ifdefs herum, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377780</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Thu, 16 Jan 2014 23:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 23:11:17 GMT]]></title><description><![CDATA[<p>Entscheidend ist, was der Compiler sagt, nicht das unterkringeln von Intellisense. Also, was sagt der Compiler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377781</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 16 Jan 2014 23:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 23:15:15 GMT]]></title><description><![CDATA[<p>Das ist nicht meine eigene string.h. Die string.h die ich includiere, ist bereits so vorgefertigt.<br />
Und programmiert ist es halt genauso, wie in meinem ersten Beitrag.</p>
<pre><code>#ifndef _string
#define _string
#include &quot;string.h&quot;
#endif
</code></pre>
<p>Und aufeinmal funktioniert es, obwohl ich rein gar nichts geändert habe. Vielleicht hat mir da VS2013 einen Streich gespielt. Sonst kann ich es gerade nicht wirklich nachvollziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377782</guid><dc:creator><![CDATA[Aeron24]]></dc:creator><pubDate>Thu, 16 Jan 2014 23:15:15 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Thu, 16 Jan 2014 23:20:34 GMT]]></title><description><![CDATA[<p>Aeron24 schrieb:</p>
<blockquote>
<p>Das ist nicht meine eigene string.h. Die string.h die ich includiere, ist bereits so vorgefertigt.</p>
</blockquote>
<p>Und diese string.h im Projekt inkludiert &lt;string&gt;? Oder wie kommt der Compiler sonst daran heran?</p>
<blockquote>
<p>Und programmiert ist es halt genauso, wie in meinem ersten Beitrag.</p>
<pre><code>#ifndef _string
#define _string
#include &quot;string.h&quot;
#endif
</code></pre>
</blockquote>
<p>So verwendet man Include-Guards aber nicht.</p>
<pre><code class="language-cpp">// mein_header.h
#ifndef MEIN_HEADER_H
#define MEIN_HEADER_H

/*
    furchtbar viel Code hier
*/

#endif MEIN_HEADER_H
</code></pre>
<pre><code class="language-cpp">// mein_programm.cpp
#include &quot;mein_header.h&quot;

int main() {
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2377783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377783</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Thu, 16 Jan 2014 23:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 08:38:57 GMT]]></title><description><![CDATA[<p>Aeron24 schrieb:</p>
<blockquote>
<p>Und aufeinmal funktioniert es, obwohl ich rein gar nichts geändert habe. Vielleicht hat mir da VS2013 einen Streich gespielt. Sonst kann ich es gerade nicht wirklich nachvollziehen.</p>
</blockquote>
<p>Hast du wirklich kompiliert oder nur auf die &quot;rote Unterkringelung&quot; geachtet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377806</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 17 Jan 2014 08:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 11:03:30 GMT]]></title><description><![CDATA[<p>Hat deine string Klasse auch den namensraum &quot;std&quot; ?<br />
Sonst würde ich es mal mit</p>
<pre><code>String_klasse meine_klasse;
meine_klasse::string
</code></pre>
<p>probieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377847</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 17 Jan 2014 11:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 11:13:43 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>Hat deine string Klasse auch den namensraum &quot;std&quot; ?</p>
</blockquote>
<p>gar nicht erlaubt. ausserdem kann ein typ keinen namensbereich haben. lediglich in einem sein kann er.</p>
<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>Sonst würde ich es mal mit</p>
<pre><code>String_klasse meine_klasse;
meine_klasse::string
</code></pre>
<p>probieren!</p>
</blockquote>
<p>dir ist schon bewusst dass dein listing unsinnig ist? <code>meine_klasse</code> ist eine instanz vom typ <code>String_klasse</code> (damit ist der bezeichner der instanz schonmal irreführend). damit <em>instanz :: bezeichner</em> sinn ergibt, muss der bezeichner von einem statischen member stammen. ergibt wiederum wenig sinn.</p>
<p>@te:<br />
include-guards (also das konstrukt mit <code>#ifdef</code> etc.) gehört in den betroffenen header rein (das ist bei den stl-headern schon gemacht). d.h., dass du ganz gemütlich inkludieren kannst ohne etwas befürchten zu müssen.<br />
dir scheint der unterschied zwischen <code>&quot;&quot;</code> und <code>&lt;&gt;</code> nicht so ganz klar zu sein:<br />
bei <code>&quot;&quot;</code> wird im ordner nach der datei gesucht, indem auch die datei ist von der aus inkludiert wird.<br />
bei <code>&lt;&gt;</code> wird in den standard-verzeichnissen (die du beim compiler definieren kannst) nachgeschaut.</p>
<p>wenn du also <code>std::string</code> aus der standard-bibliothek willst, dann schreibst du <code>#include &lt;string&gt;</code> OHNE .h und OHNE eigene include-guards.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377852</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 17 Jan 2014 11:13:43 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 11:18:47 GMT]]></title><description><![CDATA[<p>asfdlol schrieb:</p>
<blockquote>
<p>[dir ist schon bewusst dass dein listing unsinnig ist? <code>meine_klasse</code> ist eine instanz vom typ <code>String_klasse</code> (damit ist der bezeichner der instanz schonmal irreführend). damit <em>instanz :: bezeichner</em> sinn ergibt, muss der bezeichner von einem statischen member stammen. ergibt wiederum wenig sinn.</p>
</blockquote>
<p>Die ist schon klar das ich nur mal drauf hinweisen wollte, wie unsinnig es sein kann wenn man seine Klassen gleich den der Standard Bibliothek benennt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377853</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 17 Jan 2014 11:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 11:22:45 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>asfdlol schrieb:</p>
<blockquote>
<p>[dir ist schon bewusst dass dein listing unsinnig ist? <code>meine_klasse</code> ist eine instanz vom typ <code>String_klasse</code> (damit ist der bezeichner der instanz schonmal irreführend). damit <em>instanz :: bezeichner</em> sinn ergibt, muss der bezeichner von einem statischen member stammen. ergibt wiederum wenig sinn.</p>
</blockquote>
<p>Die ist schon klar das ich nur mal drauf hinweisen wollte, wie unsinnig es sein kann wenn man seine Klassen gleich den der Standard Bibliothek benennt?</p>
</blockquote>
<p>ist nicht unsinnig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377854</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 17 Jan 2014 11:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 11:37:58 GMT]]></title><description><![CDATA[<p>asfdlol schrieb:</p>
<blockquote>
<p>ist nicht unsinnig.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377859</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 17 Jan 2014 11:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to #include &amp;lt;string&amp;gt; wird nicht erkannt on Fri, 17 Jan 2014 11:55:58 GMT]]></title><description><![CDATA[<p>Ich bedanke mich für die vielen und schnellen Antworten ;-). Und anscheinend werde ich mir wohl die Sache mit den Guards nochmal etwas genauer ansehen müssen :/, da happert es noch ein bisschen mit dem Verständnis.<br />
Ich wünsche euch allen ein wunderschönes Wochenende und danke nochmals <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/2377863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377863</guid><dc:creator><![CDATA[Aeron24]]></dc:creator><pubDate>Fri, 17 Jan 2014 11:55:58 GMT</pubDate></item></channel></rss>