<?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[vektor&amp;lt;convertprobleme&amp;gt;]]></title><description><![CDATA[<p>Hallo liebe Programmierer,<br />
Ich konvertiere zu Übungszwecken alte Programme, die Ich in C geschrieben habe in C++ Bei den Vektoren die analog zu arrays in c++ arbeiten bin Ich auf ein Problem gestoßen. Der Compiler macht nicht was er soll : unterhalb ist das in C geschriebene Programm, dass einwandfrei läuft.</p>
<pre><code>#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;string&gt;
using namespace std;
//buchstabenvector---&gt;char/string

int main(){
vector &lt;char&gt; buchstabenfeld;
vector &lt;char&gt; kontrollfeld;
int i=0,veraenderungszaehler=0;
cout&lt;&lt;&quot;Bitte geben Sie ein Wort bis 20 Buchstaben ein &quot;;
cin&gt;&gt;buchstabenfeld;
cout&lt;&lt;&quot;Das eingegebene Wort ist \n&quot;&lt;&lt;buchstabenfeld.at(i)&lt;&lt;endl;

return 0;
}
</code></pre>
<p>Hier dass Original welches Ich in C geschrieben habe:</p>
<pre><code>/*int main(void){
char buchstabenfeld[20];
char kontrollfeld[2];
int i,veraenderungszaehler=0;
printf(&quot;Bitte geben Sie ein Wort bis 20 Buchstaben ein &quot;);
scanf(&quot;%s&quot;,buchstabenfeld);
printf(&quot;Das eingegebene Wort ist %s\n&quot;,buchstabenfeld);
for(i=0;i&lt;20;i++)
{
  kontrollfeld[0]=buchstabenfeld[i];
  kontrollfeld[1]=buchstabenfeld[i+1];
  if (kontrollfeld[0] == 'a' &amp;&amp; kontrollfeld[1] == 'u') {buchstabenfeld[i]='e';buchstabenfeld[i+1]='i';veraenderungszaehler+=2;}
  if (kontrollfeld[0] == 'A' &amp;&amp; kontrollfeld[1] == 'u') {buchstabenfeld[i]='E',buchstabenfeld[i+1]='i';veraenderungszaehler+=2;}
  if (kontrollfeld[0] == 'a' &amp;&amp; kontrollfeld[1] == 'U') {buchstabenfeld[i]='e',buchstabenfeld[i+1]='l';veraenderungszaehler+=2;}
  if (kontrollfeld[0] == 'A' &amp;&amp; kontrollfeld[1] == 'U') {buchstabenfeld[i]='E',buchstabenfeld[i+1]='L';veraenderungszaehler+=2;}
}
printf(&quot;Das gewandelte Wort lautet auf %s\n\n&quot;,buchstabenfeld);
printf(&quot;Es wurden %i Veraenderungen an der Zeichenkette vorgenommen&quot;,veraenderungszaehler);
system(&quot;pause&quot;);
}*/
</code></pre>
<pre><code>g++ buchstabenvector.cpp
buchstabenvector.cpp: In function ‘int main()’:
buchstabenvector.cpp:13:36: error: no match for ‘operator&lt;&lt;’ (operand types are ‘std::basic_ostream&lt;char&gt;’ and ‘std::vector&lt;char&gt;’)
 cout&lt;&lt;&quot;Das eingegebene Wort ist \n&quot;&lt;&lt;buchstabenfeld&lt;&lt;endl;
                                    ^
buchstabenvector.cpp:13:36: note: candidates are:
In file included from /usr/include/c++/4.8/iostream:39:0,
                 from buchstabenvector.cpp:1:
/usr/include/c++/4.8/ostream:108:7: note: std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp; std::basic_ostream&lt;_CharT, _Traits&gt;::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp; (*)(std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp;)) [with _CharT = char; _Traits = std::char_traits&lt;char&gt;; std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type = std::basic_ostream&lt;char&gt;]
       operator&lt;&lt;(__ostream_type&amp; (*__pf)(__ostream_type&amp;))
       ^
/usr/include/c++/4.8/ostream:108:7: note:   no known conversion for argument 1 from ‘std::vector&lt;char&gt;’ to ‘std::basic_ostream&lt;char&gt;::__ostream_type&amp; (*)(std::basic_ostream&lt;char&gt;::__ostream_type&amp;) {aka std::basic_ostream&lt;char&gt;&amp; (*)(std::basic_ostream&lt;char&gt;&amp;)}’
/usr/include/c++/4.8/ostream:117:7: note: std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp; std::basic_ostream&lt;_CharT, _Traits&gt;::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;::__ios_type&amp; (*)(std::basic_ostream&lt;_CharT, _Traits&gt;::__ios_type&amp;)) [with _CharT = char; _Traits = std::char_traits&lt;char&gt;; std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type = std::basic_ostream&lt;char&gt;; std::basic_ostream&lt;_CharT, _Traits&gt;::__ios_type = std::basic_ios&lt;char&gt;]
       operator&lt;&lt;(__ios_type&amp; (*__pf)(__ios_type&amp;))
</code></pre>
<p>Auf den Versuch das untere Programm als Vektor in c++ umzuschreiben bekomme Ich diese Fehlermeldung : wo ist das Problem bzw. gegen was verstößt das ganze ?</p>
<p>Mit strings geht das ganze einfacher, aber Ich wollte es halt mit dem Datentyp vector ausprobieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332828/vektor-lt-convertprobleme-gt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 10:55:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332828.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 May 2015 17:43:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Sun, 24 May 2015 17:45:21 GMT]]></title><description><![CDATA[<p>Hallo liebe Programmierer,<br />
Ich konvertiere zu Übungszwecken alte Programme, die Ich in C geschrieben habe in C++ Bei den Vektoren die analog zu arrays in c++ arbeiten bin Ich auf ein Problem gestoßen. Der Compiler macht nicht was er soll : unterhalb ist das in C geschriebene Programm, dass einwandfrei läuft.</p>
<pre><code>#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;string&gt;
using namespace std;
//buchstabenvector---&gt;char/string

int main(){
vector &lt;char&gt; buchstabenfeld;
vector &lt;char&gt; kontrollfeld;
int i=0,veraenderungszaehler=0;
cout&lt;&lt;&quot;Bitte geben Sie ein Wort bis 20 Buchstaben ein &quot;;
cin&gt;&gt;buchstabenfeld;
cout&lt;&lt;&quot;Das eingegebene Wort ist \n&quot;&lt;&lt;buchstabenfeld.at(i)&lt;&lt;endl;

return 0;
}
</code></pre>
<p>Hier dass Original welches Ich in C geschrieben habe:</p>
<pre><code>/*int main(void){
char buchstabenfeld[20];
char kontrollfeld[2];
int i,veraenderungszaehler=0;
printf(&quot;Bitte geben Sie ein Wort bis 20 Buchstaben ein &quot;);
scanf(&quot;%s&quot;,buchstabenfeld);
printf(&quot;Das eingegebene Wort ist %s\n&quot;,buchstabenfeld);
for(i=0;i&lt;20;i++)
{
  kontrollfeld[0]=buchstabenfeld[i];
  kontrollfeld[1]=buchstabenfeld[i+1];
  if (kontrollfeld[0] == 'a' &amp;&amp; kontrollfeld[1] == 'u') {buchstabenfeld[i]='e';buchstabenfeld[i+1]='i';veraenderungszaehler+=2;}
  if (kontrollfeld[0] == 'A' &amp;&amp; kontrollfeld[1] == 'u') {buchstabenfeld[i]='E',buchstabenfeld[i+1]='i';veraenderungszaehler+=2;}
  if (kontrollfeld[0] == 'a' &amp;&amp; kontrollfeld[1] == 'U') {buchstabenfeld[i]='e',buchstabenfeld[i+1]='l';veraenderungszaehler+=2;}
  if (kontrollfeld[0] == 'A' &amp;&amp; kontrollfeld[1] == 'U') {buchstabenfeld[i]='E',buchstabenfeld[i+1]='L';veraenderungszaehler+=2;}
}
printf(&quot;Das gewandelte Wort lautet auf %s\n\n&quot;,buchstabenfeld);
printf(&quot;Es wurden %i Veraenderungen an der Zeichenkette vorgenommen&quot;,veraenderungszaehler);
system(&quot;pause&quot;);
}*/
</code></pre>
<pre><code>g++ buchstabenvector.cpp
buchstabenvector.cpp: In function ‘int main()’:
buchstabenvector.cpp:13:36: error: no match for ‘operator&lt;&lt;’ (operand types are ‘std::basic_ostream&lt;char&gt;’ and ‘std::vector&lt;char&gt;’)
 cout&lt;&lt;&quot;Das eingegebene Wort ist \n&quot;&lt;&lt;buchstabenfeld&lt;&lt;endl;
                                    ^
buchstabenvector.cpp:13:36: note: candidates are:
In file included from /usr/include/c++/4.8/iostream:39:0,
                 from buchstabenvector.cpp:1:
/usr/include/c++/4.8/ostream:108:7: note: std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp; std::basic_ostream&lt;_CharT, _Traits&gt;::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp; (*)(std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp;)) [with _CharT = char; _Traits = std::char_traits&lt;char&gt;; std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type = std::basic_ostream&lt;char&gt;]
       operator&lt;&lt;(__ostream_type&amp; (*__pf)(__ostream_type&amp;))
       ^
/usr/include/c++/4.8/ostream:108:7: note:   no known conversion for argument 1 from ‘std::vector&lt;char&gt;’ to ‘std::basic_ostream&lt;char&gt;::__ostream_type&amp; (*)(std::basic_ostream&lt;char&gt;::__ostream_type&amp;) {aka std::basic_ostream&lt;char&gt;&amp; (*)(std::basic_ostream&lt;char&gt;&amp;)}’
/usr/include/c++/4.8/ostream:117:7: note: std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type&amp; std::basic_ostream&lt;_CharT, _Traits&gt;::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;::__ios_type&amp; (*)(std::basic_ostream&lt;_CharT, _Traits&gt;::__ios_type&amp;)) [with _CharT = char; _Traits = std::char_traits&lt;char&gt;; std::basic_ostream&lt;_CharT, _Traits&gt;::__ostream_type = std::basic_ostream&lt;char&gt;; std::basic_ostream&lt;_CharT, _Traits&gt;::__ios_type = std::basic_ios&lt;char&gt;]
       operator&lt;&lt;(__ios_type&amp; (*__pf)(__ios_type&amp;))
</code></pre>
<p>Auf den Versuch das untere Programm als Vektor in c++ umzuschreiben bekomme Ich diese Fehlermeldung : wo ist das Problem bzw. gegen was verstößt das ganze ?</p>
<p>Mit strings geht das ganze einfacher, aber Ich wollte es halt mit dem Datentyp vector ausprobieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454645</guid><dc:creator><![CDATA[softpad]]></dc:creator><pubDate>Sun, 24 May 2015 17:45:21 GMT</pubDate></item><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Sun, 24 May 2015 17:57:05 GMT]]></title><description><![CDATA[<p>Nimm std::string für Zeichenketten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454646</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 May 2015 17:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Sun, 24 May 2015 18:03:31 GMT]]></title><description><![CDATA[<p>ok...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454647</guid><dc:creator><![CDATA[softpad]]></dc:creator><pubDate>Sun, 24 May 2015 18:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Sun, 24 May 2015 18:29:11 GMT]]></title><description><![CDATA[<p>Der Vollständigkeit halber: Die Fehlermeldung besagt, dass der &quot; <code>&lt;&lt;</code> &quot;-Operator von <code>std::cout</code> für den Datentyp <code>std::vector&lt;char&gt;</code> nicht definiert ist.</p>
<p>Es empfiehlt sich wie Nathan bereits erwähnt hat, <code>std::string</code> zu verwenden. Wenn du es aber dennoch mit <code>std::vector&lt;char&gt;</code> arbeiten möchtest, bleibt dir nichts anderes übrig als für <code>cout</code> , bzw. für einen allgemeinen <code>std::ostream</code> den &quot; <code>&lt;&lt;</code> &quot;-Operator für Vektoren selbst zu definieren.<br />
Das kann z.B. so aussehen:</p>
<pre><code>std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const std::vector&lt;char&gt;&amp; v)
{
    for (auto c : v)
        out &lt;&lt; c;
    return out;
};
</code></pre>
<p>Damit kannst du dann den <code>std::vector</code> direkt via <code>cout</code> ausgeben.</p>
<p>Gruss,<br />
Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454649</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Sun, 24 May 2015 18:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Sun, 24 May 2015 18:37:51 GMT]]></title><description><![CDATA[<p>Danke!Jetzt wird's klarer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454652</guid><dc:creator><![CDATA[softpad]]></dc:creator><pubDate>Sun, 24 May 2015 18:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Sun, 24 May 2015 23:57:22 GMT]]></title><description><![CDATA[<p>Finnegan schrieb:</p>
<blockquote>
<p>Wenn du es aber dennoch mit <code>std::vector&lt;char&gt;</code> arbeiten möchtest, bleibt dir nichts anderes übrig als für <code>cout</code> , bzw. für einen allgemeinen <code>std::ostream</code> den &quot; <code>&lt;&lt;</code> &quot;-Operator für Vektoren selbst zu definieren.</p>
</blockquote>
<p>Man kann auch einfach <code>push_back('\0')</code> und dann nen Zeiger auf das erste Element rausschiften.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454666</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 24 May 2015 23:57:22 GMT</pubDate></item><item><title><![CDATA[Reply to vektor&amp;lt;convertprobleme&amp;gt; on Mon, 25 May 2015 12:05:20 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Finnegan schrieb:</p>
<blockquote>
<p>Wenn du es aber dennoch mit <code>std::vector&lt;char&gt;</code> arbeiten möchtest, bleibt dir nichts anderes übrig als für <code>cout</code> , bzw. für einen allgemeinen <code>std::ostream</code> den &quot; <code>&lt;&lt;</code> &quot;-Operator für Vektoren selbst zu definieren.</p>
</blockquote>
<p>Man kann auch einfach <code>push_back('\0')</code> und dann nen Zeiger auf das erste Element rausschiften.</p>
</blockquote>
<p>hehe, jo, ich gebe zu das war etwas unglücklich formuliert. Gerade in der Programmierung bleibt einem eigentlich so gut wie immer auch noch &quot;etwas anderes übrig&quot; <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="😉"
    /> ... obwohl ich zugeben muss, dass mir Strings, welche ihre Länge explizit mitführen besser gefallen (und der Vektor mit dem 0-char diesbezüglich etwas redundant ist): Einfacher zu implementierende String-Manipulationen, Längenbestimmung ohne den ganzen String anfassen zu müssen, etc... aber wem erzähl' ich das <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>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454690</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Mon, 25 May 2015 12:05:20 GMT</pubDate></item></channel></rss>