<?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[getline und string::size_type]]></title><description><![CDATA[<p>Hallo!<br />
Bin noch blutiger C++ Anfänger und verwende den C++ Primer als &quot;Lernbuch&quot;. Nun habe ich ein wenig rumgebastelt (simpelst) und komme hier nicht weiter:</p>
<pre><code>#include &lt;string&gt;
#include &lt;iostream&gt;
using std::cin;
using std::cout;
using std::string;
using std::endl;
main()
{
string satz;
string::size_type zaehler;
getline(cin, satz);
cout &lt;&lt; satz &lt;&lt; endl;
cout &lt;&lt; &quot;Der eingegebene Satz hatte inkl. Leerzeichen: &quot; &lt;&lt; satz.size() &lt;&lt; &quot; Zeichen&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;Welches Zeichen soll ich erkennen?&quot;;
cin &gt;&gt; zaehler;
cout &lt;&lt; &quot;Das Zeichen war ein: &quot; &lt;&lt; satz[zaehler] &lt;&lt; endl;
return 0;
}
</code></pre>
<p>Das Programm liest einen Satz ein zählt die Zeichen und lässt den User wählen welches Zeichen erkannt werden soll. Soweit sogut (funkioniert auch).</p>
<p>Im Primer steht jedoch dass string::size_type dafür gedacht ist eine extrem große Anzahl von Zeichen aufzunehmen (wenn man zb viele Zeichen in ne Variable speichert).</p>
<p>Damit wäre ja eigentlich eher meine Variable <strong>satz</strong> als string::size_type zu definieren. (es gibt ja auch lange Sätze Zeichenfolgen...)</p>
<p>Nur sobald ich meine Variablen so umdefiniere:</p>
<pre><code>[b]string::size_type satz;[/b]
string::size_type zaehler;
</code></pre>
<p>..schreit der Kompiler:<br />
<em>sizetype.cpp:11: error: invalid conversion from ‘void</em>’ to ‘char**’<br />
sizetype.cpp:11: error: invalid conversion from ‘size_t’ to ‘size_t*’<br />
/usr/include/stdio.h:649: error: too few arguments to function ‘__ssize_t getline(char**, size_t*, FILE*)’<br />
sizetype.cpp:11: error: at this point in file<br />
sizetype.cpp:13: error: request for member ‘size’ in ‘satz’, which is of non-class type ‘size_t’<br />
sizetype.cpp:16: error: invalid types ‘size_t[size_t]’ for array subscript<br />
*</p>
<p>Wo hakt es hier? Liegt es daran das getline kein string::size_type einlesen kann?</p>
<p>Es ist doch sinnvoll, die Variable die Zeichenfolgen einliest, mittels &quot;string::size_type&quot; zu definieren, oder?</p>
<p>Vielen Dank im Voraus!</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223945/getline-und-string-size_type</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 12:17:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223945.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Oct 2008 21:53:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to getline und string::size_type on Thu, 02 Oct 2008 21:53:33 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Bin noch blutiger C++ Anfänger und verwende den C++ Primer als &quot;Lernbuch&quot;. Nun habe ich ein wenig rumgebastelt (simpelst) und komme hier nicht weiter:</p>
<pre><code>#include &lt;string&gt;
#include &lt;iostream&gt;
using std::cin;
using std::cout;
using std::string;
using std::endl;
main()
{
string satz;
string::size_type zaehler;
getline(cin, satz);
cout &lt;&lt; satz &lt;&lt; endl;
cout &lt;&lt; &quot;Der eingegebene Satz hatte inkl. Leerzeichen: &quot; &lt;&lt; satz.size() &lt;&lt; &quot; Zeichen&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;Welches Zeichen soll ich erkennen?&quot;;
cin &gt;&gt; zaehler;
cout &lt;&lt; &quot;Das Zeichen war ein: &quot; &lt;&lt; satz[zaehler] &lt;&lt; endl;
return 0;
}
</code></pre>
<p>Das Programm liest einen Satz ein zählt die Zeichen und lässt den User wählen welches Zeichen erkannt werden soll. Soweit sogut (funkioniert auch).</p>
<p>Im Primer steht jedoch dass string::size_type dafür gedacht ist eine extrem große Anzahl von Zeichen aufzunehmen (wenn man zb viele Zeichen in ne Variable speichert).</p>
<p>Damit wäre ja eigentlich eher meine Variable <strong>satz</strong> als string::size_type zu definieren. (es gibt ja auch lange Sätze Zeichenfolgen...)</p>
<p>Nur sobald ich meine Variablen so umdefiniere:</p>
<pre><code>[b]string::size_type satz;[/b]
string::size_type zaehler;
</code></pre>
<p>..schreit der Kompiler:<br />
<em>sizetype.cpp:11: error: invalid conversion from ‘void</em>’ to ‘char**’<br />
sizetype.cpp:11: error: invalid conversion from ‘size_t’ to ‘size_t*’<br />
/usr/include/stdio.h:649: error: too few arguments to function ‘__ssize_t getline(char**, size_t*, FILE*)’<br />
sizetype.cpp:11: error: at this point in file<br />
sizetype.cpp:13: error: request for member ‘size’ in ‘satz’, which is of non-class type ‘size_t’<br />
sizetype.cpp:16: error: invalid types ‘size_t[size_t]’ for array subscript<br />
*</p>
<p>Wo hakt es hier? Liegt es daran das getline kein string::size_type einlesen kann?</p>
<p>Es ist doch sinnvoll, die Variable die Zeichenfolgen einliest, mittels &quot;string::size_type&quot; zu definieren, oder?</p>
<p>Vielen Dank im Voraus!</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592540</guid><dc:creator><![CDATA[mcdaniels]]></dc:creator><pubDate>Thu, 02 Oct 2008 21:53:33 GMT</pubDate></item><item><title><![CDATA[Reply to getline und string::size_type on Thu, 02 Oct 2008 22:24:49 GMT]]></title><description><![CDATA[<p><code>std::string::size_type</code> ist nur ein Integer, keine Stringklasse. Er wird einfach für Grössenangaben im Zusammenhang mit <code>std::string</code> verwendet (in der Standardbibliothek haben viele Klassen ihre eigenen Typen).</p>
<p>Verwende also weiterhin <code>std::string</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592555</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 02 Oct 2008 22:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to getline und string::size_type on Fri, 03 Oct 2008 19:02:27 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Danke für die Info, da hatte ich wohl etwas falsch verstanden.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1593117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1593117</guid><dc:creator><![CDATA[mcdaniels]]></dc:creator><pubDate>Fri, 03 Oct 2008 19:02:27 GMT</pubDate></item></channel></rss>