<?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[Aus Strtok in ein struct char schreiben]]></title><description><![CDATA[<p>Hallo <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="🙂"
    /><br />
Ahm folgendes Problem, Ich habe angefangen ne simple Datenbank zu programmieren.<br />
Aber es scheitert schon bei der Initialisierung der Vorhandenen Datensätzen.</p>
<p>Der einzelne Datensatz wird zwar in ein String übertragen (aus einer txt Datei)<br />
aber dann soll der String durch strtok in 4 Abschnitte gegliedert werden<br />
Id, Nachname, Vorname und Alter Was eigentlich auch geht.</p>
<p>Aber jetz die Abschnitte in den struct zu laden geht nicht aus dem Gerund:<br />
Error: exprssion must be a modifiable Ivalue</p>
<pre><code>//Struct
struct Kundendaten{
	char id[5];
	char vname[30];
	char nname[30];
	char alter[5];

//Main
        ifstream lesen;
	ofstream schreiben;

    Kundendaten datensatz[1000];

	int Idnummer=0;
	int menu;

	char gelesene_daten[1000];

//Datenbank initialisieren
	lesen.open(&quot;db.txt&quot;,ios::in);

	//while(!lesen.eof())// auskommentiert weil ich erstmal einen      
        //datensatz lesen will, dann soll zeile für zeile gelesen werden
	//{
		Idnummer++; 
		strcpy(gelesene_daten,&quot;&quot;); //Datensatz leeren					
		lesen.getline(gelesene_daten,1000,'\n'); //Datensatz auf String 		

                // hier wird datensatz rot unterstrichen und der error kommt
		datensatz[Idnummer].id=strtok(gelesene_daten,&quot;#&quot;);
		datensatz[Idnummer].vname=strtok(NULL,&quot;#&quot;);
		datensatz[Idnummer].nname=strtok(NULL,&quot;#&quot;);
		datensatz[Idnummer].alter=strtok(NULL,&quot;#&quot;);
	//}
	lesen.close();
</code></pre>
<p>bei compelierung kommt: error C2440: '=' : cannot convert from 'char *' to 'char [5]'</p>
<p>Wie kann man diesen Fehler beheben? Oder ist der ganze Ansatz aussichtslos?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325467/aus-strtok-in-ein-struct-char-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 14:28:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325467.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 May 2014 09:14:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aus Strtok in ein struct char schreiben on Sun, 04 May 2014 09:14:58 GMT]]></title><description><![CDATA[<p>Hallo <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="🙂"
    /><br />
Ahm folgendes Problem, Ich habe angefangen ne simple Datenbank zu programmieren.<br />
Aber es scheitert schon bei der Initialisierung der Vorhandenen Datensätzen.</p>
<p>Der einzelne Datensatz wird zwar in ein String übertragen (aus einer txt Datei)<br />
aber dann soll der String durch strtok in 4 Abschnitte gegliedert werden<br />
Id, Nachname, Vorname und Alter Was eigentlich auch geht.</p>
<p>Aber jetz die Abschnitte in den struct zu laden geht nicht aus dem Gerund:<br />
Error: exprssion must be a modifiable Ivalue</p>
<pre><code>//Struct
struct Kundendaten{
	char id[5];
	char vname[30];
	char nname[30];
	char alter[5];

//Main
        ifstream lesen;
	ofstream schreiben;

    Kundendaten datensatz[1000];

	int Idnummer=0;
	int menu;

	char gelesene_daten[1000];

//Datenbank initialisieren
	lesen.open(&quot;db.txt&quot;,ios::in);

	//while(!lesen.eof())// auskommentiert weil ich erstmal einen      
        //datensatz lesen will, dann soll zeile für zeile gelesen werden
	//{
		Idnummer++; 
		strcpy(gelesene_daten,&quot;&quot;); //Datensatz leeren					
		lesen.getline(gelesene_daten,1000,'\n'); //Datensatz auf String 		

                // hier wird datensatz rot unterstrichen und der error kommt
		datensatz[Idnummer].id=strtok(gelesene_daten,&quot;#&quot;);
		datensatz[Idnummer].vname=strtok(NULL,&quot;#&quot;);
		datensatz[Idnummer].nname=strtok(NULL,&quot;#&quot;);
		datensatz[Idnummer].alter=strtok(NULL,&quot;#&quot;);
	//}
	lesen.close();
</code></pre>
<p>bei compelierung kommt: error C2440: '=' : cannot convert from 'char *' to 'char [5]'</p>
<p>Wie kann man diesen Fehler beheben? Oder ist der ganze Ansatz aussichtslos?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397291</guid><dc:creator><![CDATA[Uke]]></dc:creator><pubDate>Sun, 04 May 2014 09:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Strtok in ein struct char schreiben on Sun, 04 May 2014 09:32:24 GMT]]></title><description><![CDATA[<p>Du vermischst C++ mit C-Relikten, das geht nur wenn man beides versteht und beherrscht <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>
<p>Da du schon getline() verwendest, kannst du es gleich richtig machen und dort dann das passende Trennzeichen '#' benutzen:</p>
<pre><code class="language-cpp">lesen.getline(datensatz[Idnummer].id, sizeof(Kundendaten.id), '#');
// ...
</code></pre>
<p>(dafür dann aber den bisherigen getline()-Aufruf entfernen!)</p>
<p>Und statt der char-Arrays solltest du besser std::string benutzen (auch dafür gibt es eine getline()-Funktion - aber als freie Funktion, nicht als Klassenfunktion)!</p>
<p>PS: Dein auskommentiertes &quot;while(!lesen.eof())&quot; ist aber auch falsch - schau mal nach Beiträgen hier im Forum von SeppJ und/oder &quot;Werner Salomon&quot; (ich habe keine Lust das nochmals im Detail zu erklären <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/2397293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397293</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 04 May 2014 09:32:24 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Strtok in ein struct char schreiben on Sun, 04 May 2014 09:51:02 GMT]]></title><description><![CDATA[<p>danke läuft jetz mit dem richtigen getline <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="🙂"
    /><br />
Der rest wird kein problem sein...hoffe ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397296</guid><dc:creator><![CDATA[Uke]]></dc:creator><pubDate>Sun, 04 May 2014 09:51:02 GMT</pubDate></item></channel></rss>