<?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[fehlerhafter Zugriff auf String-Vector[i]]]></title><description><![CDATA[<p>Servus Progger,<br />
ich möchte gerne auf den Inhalt von &quot;std::vector<a href="std::string" rel="nofollow">std::string</a> kategorie&quot; an der Stelle [i] mit printf oder cout zugreifen. Leider erhalte ich immer eine Felhermeldung an dieser Stelle:</p>
<pre><code>printf(&quot;in Kategorie: %s %2.2lf \n&quot;, kategorie.at(i) , kategoriebetrag[i]);
</code></pre>
<p>Fehlermeldung: 191 [Warning] cannot pass objects of non-POD type `struct std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' through `...'; call will abort at runtime</p>
<pre><code>#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

// Ausgaben als Datenstruktur
struct Ausgaben 
{ 
    std::string kategorie; 
    std::string monat; 
    int nummer; 
    double betrag;
    double monatsbetrag;
}; 
double monatsbetrag[12];
double kategoriebetrag[8];
int monate[13]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
std::vector&lt;std::string&gt; kategorie;
// Grundgerüst
class AusgabenListe
{

	// Definition eines Listenelements 
	class Listenelement 
	{ 
	public:
		// Konstruktor
		Listenelement(Ausgaben ausgaben)
		{
			this-&gt;ausgaben.nummer = ausgaben.nummer;
			this-&gt;ausgaben.monat = ausgaben.monat;
			this-&gt;ausgaben.kategorie = ausgaben.kategorie;
			this-&gt;ausgaben.betrag = ausgaben.betrag;
			this-&gt;ausgaben.monatsbetrag = ausgaben.monatsbetrag;
			this-&gt;nachfolger = NULL;
		}

    	// Das sind die Daten die wir verwalten wollen ( Datenbereich) 
    	Ausgaben ausgaben;

    	// Zeiger auf den Nachfolger ( Zeiger) 
    	Listenelement *nachfolger; 
	};

	// Listenkopf
	Listenelement* kopf;

	// Listenende
	Listenelement* ende;

public:

	// Konstruktor
	AusgabenListe(void)
	{
		kopf = ende = NULL;
	}

	// Destruktor
	~AusgabenListe()
	{
	}

	// einen Ausgaben in die Liste einfügen
	void hinzufuegen(Ausgaben ausgaben)
	{
		// Ein neues Listenelement erstellen und mit 'ausgaben' initialisieren
		Listenelement *neuesListenelement = new Listenelement(ausgaben); 

		// liste ist leer
		if(istLeer())
			ende = kopf = neuesListenelement;
		else
		{
			// das letzte Element zeigt auf das neue Element
			ende-&gt;nachfolger = neuesListenelement;

			// das neue Element wird zum Letzten
			ende = neuesListenelement;
		}
	}

	// prüft ob die Liste leer ist
	bool istLeer()
	{
		return (kopf == NULL) ? true : false;
	}

	// Liste löschen
	void loeschen(void)
	{
		if(istLeer())
			return;

		// solange der Zeiger nicht Null ist, also noch Elemente vorhanden sind...
		while(kopf-&gt;nachfolger != NULL)
		{
			// ...suche das vorletzte ELement
			Listenelement *vorletztesElement = kopf;
			while(vorletztesElement-&gt;nachfolger != ende)
			{
				vorletztesElement = vorletztesElement-&gt;nachfolger;
			}

			// lösche das letzte Element
			delete ende;

			// das vorletzte Element wird zum Letzten
			vorletztesElement-&gt;nachfolger = NULL;
			ende = vorletztesElement;
		}

		// zuletzt noch den Listenkopf löschen
		delete kopf;
	}

	// zeigt alle Listenelemente
	void elementeAnzeigen(void)
	{
		// aktueller Knoten
		Listenelement *p = kopf;

		// solange der Knoten nicht Null ist, also das Ende nicht erreicht ist...
		while(p != NULL)
		{
			// ...Inhalt ausgeben
			std::cout &lt;&lt; &quot;kategorie: &quot;&lt;&lt; p-&gt;ausgaben.kategorie.c_str() 
				&lt;&lt; &quot; monat: &quot; &lt;&lt; p-&gt;ausgaben.monat 
				&lt;&lt; &quot; betrag: &quot; &lt;&lt; p-&gt;ausgaben.betrag 
				&lt;&lt; &quot; nummer: &quot; &lt;&lt; p-&gt;ausgaben.nummer &lt;&lt; std::endl;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}
	}
	//auswerten der Datensätze aus den Listenelement
	void auswerten1(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;
         	while(p != NULL)
		{
			// ...Inhalt ausgeben
    if(p-&gt;ausgaben.monat==&quot;Januar&quot;) monatsbetrag[0]=monatsbetrag[0]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Februar&quot;) monatsbetrag[1]=monatsbetrag[1]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;März&quot;) monatsbetrag[2]=monatsbetrag[2]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;April&quot;) monatsbetrag[3]=monatsbetrag[3]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Mai&quot;) monatsbetrag[4]=monatsbetrag[4]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juni&quot;) monatsbetrag[5]=monatsbetrag[5]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juli&quot;) monatsbetrag[6]=monatsbetrag[6]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;August&quot;) monatsbetrag[7]=monatsbetrag[7]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;September&quot;) monatsbetrag[8]=monatsbetrag[8]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Oktober&quot;) monatsbetrag[9]=monatsbetrag[9]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;November&quot;) monatsbetrag[10]=monatsbetrag[10]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Dezember&quot;) monatsbetrag[11]=monatsbetrag[11]+ p-&gt;ausgaben.betrag;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}

		for(int i=0; i&lt;=11; i++) 
        {
        printf(&quot;im Monat: %d %2.2lf \n&quot;, monate[i], monatsbetrag[i]);
        if(monatsbetrag[i]&gt;500) printf(&quot;!!!!!!!!!!! Monatsbudget ueberschritten\n&quot;);
        }
    }
    	void auswerten2(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;		
		while(p != NULL)
		{
			// ...Inhalt ausgeben
     if(p-&gt;ausgaben.kategorie==&quot;Urlaub&quot;){ kategoriebetrag[0]=kategoriebetrag[0] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Urlaub&quot;);}   
    else if(p-&gt;ausgaben.kategorie==&quot;Tanken&quot;){ kategoriebetrag[1]=kategoriebetrag[1] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Tanken&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Miete&quot;){ kategoriebetrag[2]=kategoriebetrag[2] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Miete&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kleidung&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kleidung&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Sex&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Sex&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kino&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kino&quot;);}
			// der Nachfolger wird zum aktuellen Knoten
			   p = p-&gt;nachfolger;
       }		
		for(int i=0; i&lt;kategorie.size(); i++) 
        {

       printf(&quot;in Kategorie: %s %2.2lf \n&quot;, kategorie.at(i) , kategoriebetrag[i]); 
        }
     }
};

int main()
{
    int i=0;
	// Beispielsätze
	Ausgaben ausgaben, ausgaben1, ausgaben2, ausgaben3, ausgaben4, ausgaben5, ausgaben6, ausgaben7, ausgaben8, ausgaben9, ausgaben10, ausgaben11;
	ausgaben.kategorie = &quot;Miete&quot;; 
	ausgaben.monat = &quot;Januar&quot;;
	ausgaben.nummer = 10;
	ausgaben.betrag= 10;

	ausgaben1.kategorie = &quot;Tanken&quot;; 
	ausgaben1.monat = &quot;Januar&quot;;
	ausgaben1.nummer = 1;
	ausgaben1.betrag= 40;

	ausgaben2.kategorie = &quot;Kleidung&quot;; 
	ausgaben2.monat = &quot;Februar&quot;;
	ausgaben2.nummer = 4;
	ausgaben2.betrag= 100;

	ausgaben3.kategorie = &quot;Tanken&quot;; 
	ausgaben3.monat = &quot;Februar&quot;;
	ausgaben3.nummer = 2;
	ausgaben3.betrag= 150;

	ausgaben4.kategorie = &quot;Urlaub&quot;;
	ausgaben4.monat = &quot;April&quot;;
	ausgaben4.nummer = 5;
	ausgaben4.betrag= 503;

	ausgaben5.kategorie = &quot;Miete&quot;; 
	ausgaben5.monat = &quot;Mai&quot;;
	ausgaben5.nummer = 6;
	ausgaben5.betrag= 10;

	ausgaben6.kategorie = &quot;Tanken&quot;; 
	ausgaben6.monat = &quot;April&quot;;
	ausgaben6.nummer = 7;
	ausgaben6.betrag= 40;

	ausgaben7.kategorie = &quot;Kleidung&quot;; 
	ausgaben7.monat = &quot;April&quot;;
	ausgaben7.nummer = 3;
	ausgaben7.betrag= 100;

	ausgaben8.kategorie = &quot;Tanken&quot;; 
	ausgaben8.monat = &quot;Juli&quot;;
	ausgaben8.nummer = 7;
	ausgaben8.betrag= 130;

	ausgaben9.kategorie = &quot;Urlaub&quot;;
	ausgaben9.monat = &quot;April&quot;;
	ausgaben9.nummer = 9;
	ausgaben9.betrag= 106;

	ausgaben10.kategorie = &quot;Urlaub&quot;;
	ausgaben10.monat = &quot;Dezember&quot;;
	ausgaben10.nummer = 10;
	ausgaben10.betrag= 56;

	ausgaben11.kategorie = &quot;Sex&quot;;
	ausgaben11.monat = &quot;Novenmber&quot;;
	ausgaben11.nummer =13;
	ausgaben11.betrag= 56;

	AusgabenListe ausgabene;
	ausgabene.hinzufuegen(ausgaben);
	ausgabene.hinzufuegen(ausgaben1);
	ausgabene.hinzufuegen(ausgaben2);
	ausgabene.hinzufuegen(ausgaben3);
	ausgabene.hinzufuegen(ausgaben4);
	ausgabene.hinzufuegen(ausgaben5);
	ausgabene.hinzufuegen(ausgaben6);
	ausgabene.hinzufuegen(ausgaben7);
	ausgabene.hinzufuegen(ausgaben8);
	ausgabene.hinzufuegen(ausgaben9);
	ausgabene.hinzufuegen(ausgaben10);
	ausgabene.hinzufuegen(ausgaben11);
	ausgabene.elementeAnzeigen();

    ausgabene.auswerten1();

    ausgabene.auswerten2();

	ausgabene.loeschen();

	std::cin.get();

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/340169/fehlerhafter-zugriff-auf-string-vector-i</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 10:46:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340169.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Oct 2016 11:34:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 11:34:25 GMT]]></title><description><![CDATA[<p>Servus Progger,<br />
ich möchte gerne auf den Inhalt von &quot;std::vector<a href="std::string" rel="nofollow">std::string</a> kategorie&quot; an der Stelle [i] mit printf oder cout zugreifen. Leider erhalte ich immer eine Felhermeldung an dieser Stelle:</p>
<pre><code>printf(&quot;in Kategorie: %s %2.2lf \n&quot;, kategorie.at(i) , kategoriebetrag[i]);
</code></pre>
<p>Fehlermeldung: 191 [Warning] cannot pass objects of non-POD type `struct std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' through `...'; call will abort at runtime</p>
<pre><code>#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

// Ausgaben als Datenstruktur
struct Ausgaben 
{ 
    std::string kategorie; 
    std::string monat; 
    int nummer; 
    double betrag;
    double monatsbetrag;
}; 
double monatsbetrag[12];
double kategoriebetrag[8];
int monate[13]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
std::vector&lt;std::string&gt; kategorie;
// Grundgerüst
class AusgabenListe
{

	// Definition eines Listenelements 
	class Listenelement 
	{ 
	public:
		// Konstruktor
		Listenelement(Ausgaben ausgaben)
		{
			this-&gt;ausgaben.nummer = ausgaben.nummer;
			this-&gt;ausgaben.monat = ausgaben.monat;
			this-&gt;ausgaben.kategorie = ausgaben.kategorie;
			this-&gt;ausgaben.betrag = ausgaben.betrag;
			this-&gt;ausgaben.monatsbetrag = ausgaben.monatsbetrag;
			this-&gt;nachfolger = NULL;
		}

    	// Das sind die Daten die wir verwalten wollen ( Datenbereich) 
    	Ausgaben ausgaben;

    	// Zeiger auf den Nachfolger ( Zeiger) 
    	Listenelement *nachfolger; 
	};

	// Listenkopf
	Listenelement* kopf;

	// Listenende
	Listenelement* ende;

public:

	// Konstruktor
	AusgabenListe(void)
	{
		kopf = ende = NULL;
	}

	// Destruktor
	~AusgabenListe()
	{
	}

	// einen Ausgaben in die Liste einfügen
	void hinzufuegen(Ausgaben ausgaben)
	{
		// Ein neues Listenelement erstellen und mit 'ausgaben' initialisieren
		Listenelement *neuesListenelement = new Listenelement(ausgaben); 

		// liste ist leer
		if(istLeer())
			ende = kopf = neuesListenelement;
		else
		{
			// das letzte Element zeigt auf das neue Element
			ende-&gt;nachfolger = neuesListenelement;

			// das neue Element wird zum Letzten
			ende = neuesListenelement;
		}
	}

	// prüft ob die Liste leer ist
	bool istLeer()
	{
		return (kopf == NULL) ? true : false;
	}

	// Liste löschen
	void loeschen(void)
	{
		if(istLeer())
			return;

		// solange der Zeiger nicht Null ist, also noch Elemente vorhanden sind...
		while(kopf-&gt;nachfolger != NULL)
		{
			// ...suche das vorletzte ELement
			Listenelement *vorletztesElement = kopf;
			while(vorletztesElement-&gt;nachfolger != ende)
			{
				vorletztesElement = vorletztesElement-&gt;nachfolger;
			}

			// lösche das letzte Element
			delete ende;

			// das vorletzte Element wird zum Letzten
			vorletztesElement-&gt;nachfolger = NULL;
			ende = vorletztesElement;
		}

		// zuletzt noch den Listenkopf löschen
		delete kopf;
	}

	// zeigt alle Listenelemente
	void elementeAnzeigen(void)
	{
		// aktueller Knoten
		Listenelement *p = kopf;

		// solange der Knoten nicht Null ist, also das Ende nicht erreicht ist...
		while(p != NULL)
		{
			// ...Inhalt ausgeben
			std::cout &lt;&lt; &quot;kategorie: &quot;&lt;&lt; p-&gt;ausgaben.kategorie.c_str() 
				&lt;&lt; &quot; monat: &quot; &lt;&lt; p-&gt;ausgaben.monat 
				&lt;&lt; &quot; betrag: &quot; &lt;&lt; p-&gt;ausgaben.betrag 
				&lt;&lt; &quot; nummer: &quot; &lt;&lt; p-&gt;ausgaben.nummer &lt;&lt; std::endl;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}
	}
	//auswerten der Datensätze aus den Listenelement
	void auswerten1(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;
         	while(p != NULL)
		{
			// ...Inhalt ausgeben
    if(p-&gt;ausgaben.monat==&quot;Januar&quot;) monatsbetrag[0]=monatsbetrag[0]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Februar&quot;) monatsbetrag[1]=monatsbetrag[1]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;März&quot;) monatsbetrag[2]=monatsbetrag[2]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;April&quot;) monatsbetrag[3]=monatsbetrag[3]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Mai&quot;) monatsbetrag[4]=monatsbetrag[4]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juni&quot;) monatsbetrag[5]=monatsbetrag[5]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juli&quot;) monatsbetrag[6]=monatsbetrag[6]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;August&quot;) monatsbetrag[7]=monatsbetrag[7]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;September&quot;) monatsbetrag[8]=monatsbetrag[8]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Oktober&quot;) monatsbetrag[9]=monatsbetrag[9]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;November&quot;) monatsbetrag[10]=monatsbetrag[10]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Dezember&quot;) monatsbetrag[11]=monatsbetrag[11]+ p-&gt;ausgaben.betrag;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}

		for(int i=0; i&lt;=11; i++) 
        {
        printf(&quot;im Monat: %d %2.2lf \n&quot;, monate[i], monatsbetrag[i]);
        if(monatsbetrag[i]&gt;500) printf(&quot;!!!!!!!!!!! Monatsbudget ueberschritten\n&quot;);
        }
    }
    	void auswerten2(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;		
		while(p != NULL)
		{
			// ...Inhalt ausgeben
     if(p-&gt;ausgaben.kategorie==&quot;Urlaub&quot;){ kategoriebetrag[0]=kategoriebetrag[0] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Urlaub&quot;);}   
    else if(p-&gt;ausgaben.kategorie==&quot;Tanken&quot;){ kategoriebetrag[1]=kategoriebetrag[1] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Tanken&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Miete&quot;){ kategoriebetrag[2]=kategoriebetrag[2] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Miete&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kleidung&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kleidung&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Sex&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Sex&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kino&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kino&quot;);}
			// der Nachfolger wird zum aktuellen Knoten
			   p = p-&gt;nachfolger;
       }		
		for(int i=0; i&lt;kategorie.size(); i++) 
        {

       printf(&quot;in Kategorie: %s %2.2lf \n&quot;, kategorie.at(i) , kategoriebetrag[i]); 
        }
     }
};

int main()
{
    int i=0;
	// Beispielsätze
	Ausgaben ausgaben, ausgaben1, ausgaben2, ausgaben3, ausgaben4, ausgaben5, ausgaben6, ausgaben7, ausgaben8, ausgaben9, ausgaben10, ausgaben11;
	ausgaben.kategorie = &quot;Miete&quot;; 
	ausgaben.monat = &quot;Januar&quot;;
	ausgaben.nummer = 10;
	ausgaben.betrag= 10;

	ausgaben1.kategorie = &quot;Tanken&quot;; 
	ausgaben1.monat = &quot;Januar&quot;;
	ausgaben1.nummer = 1;
	ausgaben1.betrag= 40;

	ausgaben2.kategorie = &quot;Kleidung&quot;; 
	ausgaben2.monat = &quot;Februar&quot;;
	ausgaben2.nummer = 4;
	ausgaben2.betrag= 100;

	ausgaben3.kategorie = &quot;Tanken&quot;; 
	ausgaben3.monat = &quot;Februar&quot;;
	ausgaben3.nummer = 2;
	ausgaben3.betrag= 150;

	ausgaben4.kategorie = &quot;Urlaub&quot;;
	ausgaben4.monat = &quot;April&quot;;
	ausgaben4.nummer = 5;
	ausgaben4.betrag= 503;

	ausgaben5.kategorie = &quot;Miete&quot;; 
	ausgaben5.monat = &quot;Mai&quot;;
	ausgaben5.nummer = 6;
	ausgaben5.betrag= 10;

	ausgaben6.kategorie = &quot;Tanken&quot;; 
	ausgaben6.monat = &quot;April&quot;;
	ausgaben6.nummer = 7;
	ausgaben6.betrag= 40;

	ausgaben7.kategorie = &quot;Kleidung&quot;; 
	ausgaben7.monat = &quot;April&quot;;
	ausgaben7.nummer = 3;
	ausgaben7.betrag= 100;

	ausgaben8.kategorie = &quot;Tanken&quot;; 
	ausgaben8.monat = &quot;Juli&quot;;
	ausgaben8.nummer = 7;
	ausgaben8.betrag= 130;

	ausgaben9.kategorie = &quot;Urlaub&quot;;
	ausgaben9.monat = &quot;April&quot;;
	ausgaben9.nummer = 9;
	ausgaben9.betrag= 106;

	ausgaben10.kategorie = &quot;Urlaub&quot;;
	ausgaben10.monat = &quot;Dezember&quot;;
	ausgaben10.nummer = 10;
	ausgaben10.betrag= 56;

	ausgaben11.kategorie = &quot;Sex&quot;;
	ausgaben11.monat = &quot;Novenmber&quot;;
	ausgaben11.nummer =13;
	ausgaben11.betrag= 56;

	AusgabenListe ausgabene;
	ausgabene.hinzufuegen(ausgaben);
	ausgabene.hinzufuegen(ausgaben1);
	ausgabene.hinzufuegen(ausgaben2);
	ausgabene.hinzufuegen(ausgaben3);
	ausgabene.hinzufuegen(ausgaben4);
	ausgabene.hinzufuegen(ausgaben5);
	ausgabene.hinzufuegen(ausgaben6);
	ausgabene.hinzufuegen(ausgaben7);
	ausgabene.hinzufuegen(ausgaben8);
	ausgabene.hinzufuegen(ausgaben9);
	ausgabene.hinzufuegen(ausgaben10);
	ausgabene.hinzufuegen(ausgaben11);
	ausgabene.elementeAnzeigen();

    ausgabene.auswerten1();

    ausgabene.auswerten2();

	ausgabene.loeschen();

	std::cin.get();

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2512556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512556</guid><dc:creator><![CDATA[Julia_w]]></dc:creator><pubDate>Sun, 23 Oct 2016 11:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 11:42:04 GMT]]></title><description><![CDATA[<p>Ich glaub mal, dass <code>%s</code> einen C-String erwartet. Stattdessen übergibst du aber ein c++sches <code>std::string</code> . Und dein Compiler checkt das in der Compile-Zeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512557</guid><dc:creator><![CDATA[Julius_c]]></dc:creator><pubDate>Sun, 23 Oct 2016 11:42:04 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 13:04:36 GMT]]></title><description><![CDATA[<p>Warum benutzt du nicht cout?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512569</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 23 Oct 2016 13:04:36 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 15:12:22 GMT]]></title><description><![CDATA[<p>Fehlermeldung beo COUT:</p>
<pre><code>main.cpp: In member function `void AusgabenListe::auswerten2()':
main.cpp:193: error: `cout' undeclared (first use this function)
main.cpp:193: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp:193: error: expected `;' before ')' token
</code></pre>
<pre><code>#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;string.h&gt;
#include &lt;vector&gt;
#include &lt;stdio.h&gt;

// Ausgaben als Datenstruktur
struct Ausgaben 
{ 
    std::string kategorie; 
    std::string monat; 
    int nummer; 
    double betrag;
    double monatsbetrag;
}; 
double monatsbetrag[12];
double kategoriebetrag[8];
int monate[13]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
std::vector&lt;std::string&gt; kategorie;
// Grundgerüst
class AusgabenListe
{

	// Definition eines Listenelements 
	class Listenelement 
	{ 
	public:
		// Konstruktor
		Listenelement(Ausgaben ausgaben)
		{
			this-&gt;ausgaben.nummer = ausgaben.nummer;
			this-&gt;ausgaben.monat = ausgaben.monat;
			this-&gt;ausgaben.kategorie = ausgaben.kategorie;
			this-&gt;ausgaben.betrag = ausgaben.betrag;
			this-&gt;ausgaben.monatsbetrag = ausgaben.monatsbetrag;
			this-&gt;nachfolger = NULL;
		}

    	// Das sind die Daten die wir verwalten wollen ( Datenbereich) 
    	Ausgaben ausgaben;

    	// Zeiger auf den Nachfolger ( Zeiger) 
    	Listenelement *nachfolger; 
	};

	// Listenkopf
	Listenelement* kopf;

	// Listenende
	Listenelement* ende;

public:

	// Konstruktor
	AusgabenListe(void)
	{
		kopf = ende = NULL;
	}

	// Destruktor
	~AusgabenListe()
	{
	}

	// einen Ausgaben in die Liste einfügen
	void hinzufuegen(Ausgaben ausgaben)
	{
		// Ein neues Listenelement erstellen und mit 'ausgaben' initialisieren
		Listenelement *neuesListenelement = new Listenelement(ausgaben); 

		// liste ist leer
		if(istLeer())
			ende = kopf = neuesListenelement;
		else
		{
			// das letzte Element zeigt auf das neue Element
			ende-&gt;nachfolger = neuesListenelement;

			// das neue Element wird zum Letzten
			ende = neuesListenelement;
		}
	}

	// prüft ob die Liste leer ist
	bool istLeer()
	{
		return (kopf == NULL) ? true : false;
	}

	// Liste löschen
	void loeschen(void)
	{
		if(istLeer())
			return;

		// solange der Zeiger nicht Null ist, also noch Elemente vorhanden sind...
		while(kopf-&gt;nachfolger != NULL)
		{
			// ...suche das vorletzte ELement
			Listenelement *vorletztesElement = kopf;
			while(vorletztesElement-&gt;nachfolger != ende)
			{
				vorletztesElement = vorletztesElement-&gt;nachfolger;
			}

			// lösche das letzte Element
			delete ende;

			// das vorletzte Element wird zum Letzten
			vorletztesElement-&gt;nachfolger = NULL;
			ende = vorletztesElement;
		}

		// zuletzt noch den Listenkopf löschen
		delete kopf;
	}

	// zeigt alle Listenelemente
	void elementeAnzeigen(void)
	{
		// aktueller Knoten
		Listenelement *p = kopf;

		// solange der Knoten nicht Null ist, also das Ende nicht erreicht ist...
		while(p != NULL)
		{
			// ...Inhalt ausgeben
			std::cout &lt;&lt; &quot;kategorie: &quot;&lt;&lt; p-&gt;ausgaben.kategorie.c_str() 
				&lt;&lt; &quot; monat: &quot; &lt;&lt; p-&gt;ausgaben.monat 
				&lt;&lt; &quot; betrag: &quot; &lt;&lt; p-&gt;ausgaben.betrag 
				&lt;&lt; &quot; nummer: &quot; &lt;&lt; p-&gt;ausgaben.nummer &lt;&lt; std::endl;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}
	}
	//auswerten der Datensätze aus den Listenelement
	void auswerten1(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;
         	while(p != NULL)
		{
			// ...Inhalt ausgeben
    if(p-&gt;ausgaben.monat==&quot;Januar&quot;) monatsbetrag[0]=monatsbetrag[0]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Februar&quot;) monatsbetrag[1]=monatsbetrag[1]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;März&quot;) monatsbetrag[2]=monatsbetrag[2]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;April&quot;) monatsbetrag[3]=monatsbetrag[3]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Mai&quot;) monatsbetrag[4]=monatsbetrag[4]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juni&quot;) monatsbetrag[5]=monatsbetrag[5]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juli&quot;) monatsbetrag[6]=monatsbetrag[6]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;August&quot;) monatsbetrag[7]=monatsbetrag[7]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;September&quot;) monatsbetrag[8]=monatsbetrag[8]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Oktober&quot;) monatsbetrag[9]=monatsbetrag[9]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;November&quot;) monatsbetrag[10]=monatsbetrag[10]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Dezember&quot;) monatsbetrag[11]=monatsbetrag[11]+ p-&gt;ausgaben.betrag;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}

		for(int i=0; i&lt;=11; i++) 
        {
        printf(&quot;im Monat: %d %2.2lf \n&quot;, monate[i], monatsbetrag[i]);
        if(monatsbetrag[i]&gt;500) printf(&quot;!!!!!!!!!!! Monatsbudget ueberschritten\n&quot;);
        }
    }
    	void auswerten2(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;		
		while(p != NULL)
		{
			// ...Inhalt ausgeben
     if(p-&gt;ausgaben.kategorie==&quot;Urlaub&quot;){ kategoriebetrag[0]=kategoriebetrag[0] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Urlaub&quot;);}   
    else if(p-&gt;ausgaben.kategorie==&quot;Tanken&quot;){ kategoriebetrag[1]=kategoriebetrag[1] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Tanken&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Miete&quot;){ kategoriebetrag[2]=kategoriebetrag[2] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Miete&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kleidung&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kleidung&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Sex&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Sex&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kino&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kino&quot;);}
			// der Nachfolger wird zum aktuellen Knoten
			   p = p-&gt;nachfolger;
       }		
		for(int i=0; i&lt;kategorie.size(); i++) 
        {

       //printf(&quot;in Kategorie: %s %2.2lf \n&quot;, kategorie.at(i) , kategoriebetrag[i]); 
       cout&lt;&lt;kategorie.at(i); cout&lt;&lt;kategoriebetrag[i])&lt;&lt;endl; 
        }
     }
};

int main()
{
    int i=0;
	// Beispielsätze
	Ausgaben ausgaben, ausgaben1, ausgaben2, ausgaben3, ausgaben4, ausgaben5, ausgaben6, ausgaben7, ausgaben8, ausgaben9, ausgaben10, ausgaben11;
	ausgaben.kategorie = &quot;Miete&quot;; 
	ausgaben.monat = &quot;Januar&quot;;
	ausgaben.nummer = 10;
	ausgaben.betrag= 10;

	ausgaben1.kategorie = &quot;Tanken&quot;; 
	ausgaben1.monat = &quot;Januar&quot;;
	ausgaben1.nummer = 1;
	ausgaben1.betrag= 40;

	ausgaben2.kategorie = &quot;Kleidung&quot;; 
	ausgaben2.monat = &quot;Februar&quot;;
	ausgaben2.nummer = 4;
	ausgaben2.betrag= 100;

	ausgaben3.kategorie = &quot;Tanken&quot;; 
	ausgaben3.monat = &quot;Februar&quot;;
	ausgaben3.nummer = 2;
	ausgaben3.betrag= 150;

	ausgaben4.kategorie = &quot;Urlaub&quot;;
	ausgaben4.monat = &quot;April&quot;;
	ausgaben4.nummer = 5;
	ausgaben4.betrag= 503;

	ausgaben5.kategorie = &quot;Miete&quot;; 
	ausgaben5.monat = &quot;Mai&quot;;
	ausgaben5.nummer = 6;
	ausgaben5.betrag= 10;

	ausgaben6.kategorie = &quot;Tanken&quot;; 
	ausgaben6.monat = &quot;April&quot;;
	ausgaben6.nummer = 7;
	ausgaben6.betrag= 40;

	ausgaben7.kategorie = &quot;Kleidung&quot;; 
	ausgaben7.monat = &quot;April&quot;;
	ausgaben7.nummer = 3;
	ausgaben7.betrag= 100;

	ausgaben8.kategorie = &quot;Tanken&quot;; 
	ausgaben8.monat = &quot;Juli&quot;;
	ausgaben8.nummer = 7;
	ausgaben8.betrag= 130;

	ausgaben9.kategorie = &quot;Urlaub&quot;;
	ausgaben9.monat = &quot;April&quot;;
	ausgaben9.nummer = 9;
	ausgaben9.betrag= 106;

	ausgaben10.kategorie = &quot;Urlaub&quot;;
	ausgaben10.monat = &quot;Dezember&quot;;
	ausgaben10.nummer = 10;
	ausgaben10.betrag= 56;

	ausgaben11.kategorie = &quot;Sex&quot;;
	ausgaben11.monat = &quot;Novenmber&quot;;
	ausgaben11.nummer =13;
	ausgaben11.betrag= 56;

	AusgabenListe ausgabene;
	ausgabene.hinzufuegen(ausgaben);
	ausgabene.hinzufuegen(ausgaben1);
	ausgabene.hinzufuegen(ausgaben2);
	ausgabene.hinzufuegen(ausgaben3);
	ausgabene.hinzufuegen(ausgaben4);
	ausgabene.hinzufuegen(ausgaben5);
	ausgabene.hinzufuegen(ausgaben6);
	ausgabene.hinzufuegen(ausgaben7);
	ausgabene.hinzufuegen(ausgaben8);
	ausgabene.hinzufuegen(ausgaben9);
	ausgabene.hinzufuegen(ausgaben10);
	ausgabene.hinzufuegen(ausgaben11);
	ausgabene.elementeAnzeigen();

    ausgabene.auswerten1();

    ausgabene.auswerten2();

	ausgabene.loeschen();

	std::cin.get();

	return 0;
}
 :confused:  wie ich bereits gesagt habe, printf und cout funktionieren beide nicht....
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2512587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512587</guid><dc:creator><![CDATA[Julia_w]]></dc:creator><pubDate>Sun, 23 Oct 2016 15:12:22 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 15:18:28 GMT]]></title><description><![CDATA[<p>Header inkludieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512589</guid><dc:creator><![CDATA[546gfg56g]]></dc:creator><pubDate>Sun, 23 Oct 2016 15:18:28 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 15:19:29 GMT]]></title><description><![CDATA[<p>Scope-Bezeichner dazuschreiben*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512590</guid><dc:creator><![CDATA[t5t55g5t5t]]></dc:creator><pubDate>Sun, 23 Oct 2016 15:19:29 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 15:44:59 GMT]]></title><description><![CDATA[<p>std::cout, wie alles andere auch, das nicht aus C kommt (und dafür müsste es eigentlich auch immer eine Deklaration mit std geben). Lass das printf generell weg, wenn du dir nicht in den Fuss schießen willst.</p>
<p>Kein string.h oder stdio.h, dafür aber string inkludieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512593</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 23 Oct 2016 15:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 15:53:15 GMT]]></title><description><![CDATA[<p>Und das, was du eigentlich willst ist nur std::vector&lt;Ausgabe&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512594</guid><dc:creator><![CDATA[h6h6h6h6]]></dc:creator><pubDate>Sun, 23 Oct 2016 15:53:15 GMT</pubDate></item><item><title><![CDATA[Reply to fehlerhafter Zugriff auf String-Vector[i] on Sun, 23 Oct 2016 18:16:37 GMT]]></title><description><![CDATA[<p>Jetzt läuft es zwar, aber die ausgabe passt nicht ganz.</p>
<p>ich meine, ich hatte im November Sex für 56 €, stattdessen steht da aber: Miete 56 € und Kleidung 20 € <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>
<pre><code>#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;stdio.h&gt;

// Ausgaben als Datenstruktur
struct Ausgaben 
{ 
    std::string kategorie; 
    std::string monat; 
    int nummer; 
    double betrag;
    double monatsbetrag;
}; 
double monatsbetrag[12];
double kategoriebetrag[8];
int monate[13]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
std::vector&lt;std::string&gt; kategorie;
// Grundgerüst
class AusgabenListe
{

	// Definition eines Listenelements 
	class Listenelement 
	{ 
	public:
		// Konstruktor
		Listenelement(Ausgaben ausgaben)
		{
			this-&gt;ausgaben.nummer = ausgaben.nummer;
			this-&gt;ausgaben.monat = ausgaben.monat;
			this-&gt;ausgaben.kategorie = ausgaben.kategorie;
			this-&gt;ausgaben.betrag = ausgaben.betrag;
			this-&gt;ausgaben.monatsbetrag = ausgaben.monatsbetrag;
			this-&gt;nachfolger = NULL;
		}

    	// Das sind die Daten die wir verwalten wollen ( Datenbereich) 
    	Ausgaben ausgaben;

    	// Zeiger auf den Nachfolger ( Zeiger) 
    	Listenelement *nachfolger; 
	};

	// Listenkopf
	Listenelement* kopf;

	// Listenende
	Listenelement* ende;

public:

	// Konstruktor
	AusgabenListe(void)
	{
		kopf = ende = NULL;
	}

	// Destruktor
	~AusgabenListe()
	{
	}

	// einen Ausgaben in die Liste einfügen
	void hinzufuegen(Ausgaben ausgaben)
	{
		// Ein neues Listenelement erstellen und mit 'ausgaben' initialisieren
		Listenelement *neuesListenelement = new Listenelement(ausgaben); 

		// liste ist leer
		if(istLeer())
			ende = kopf = neuesListenelement;
		else
		{
			// das letzte Element zeigt auf das neue Element
			ende-&gt;nachfolger = neuesListenelement;

			// das neue Element wird zum Letzten
			ende = neuesListenelement;
		}
	}

	// prüft ob die Liste leer ist
	bool istLeer()
	{
		return (kopf == NULL) ? true : false;
	}

	// Liste löschen
	void loeschen(void)
	{
		if(istLeer())
			return;

		// solange der Zeiger nicht Null ist, also noch Elemente vorhanden sind...
		while(kopf-&gt;nachfolger != NULL)
		{
			// ...suche das vorletzte ELement
			Listenelement *vorletztesElement = kopf;
			while(vorletztesElement-&gt;nachfolger != ende)
			{
				vorletztesElement = vorletztesElement-&gt;nachfolger;
			}

			// lösche das letzte Element
			delete ende;

			// das vorletzte Element wird zum Letzten
			vorletztesElement-&gt;nachfolger = NULL;
			ende = vorletztesElement;
		}

		// zuletzt noch den Listenkopf löschen
		delete kopf;
	}

	// zeigt alle Listenelemente
	void elementeAnzeigen(void)
	{
		// aktueller Knoten
		Listenelement *p = kopf;

		// solange der Knoten nicht Null ist, also das Ende nicht erreicht ist...
		while(p != NULL)
		{
			// ...Inhalt ausgeben
			std::cout &lt;&lt; &quot;kategorie: &quot;&lt;&lt; p-&gt;ausgaben.kategorie.c_str() 
				&lt;&lt; &quot; monat: &quot; &lt;&lt; p-&gt;ausgaben.monat 
				&lt;&lt; &quot; betrag: &quot; &lt;&lt; p-&gt;ausgaben.betrag 
				&lt;&lt; &quot; nummer: &quot; &lt;&lt; p-&gt;ausgaben.nummer &lt;&lt; std::endl;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}
	}
	//auswerten der Datensätze aus den Listenelement
	void auswerten1(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;
         	while(p != NULL)
		{
			// ...Inhalt ausgeben
    if(p-&gt;ausgaben.monat==&quot;Januar&quot;) monatsbetrag[0]=monatsbetrag[0]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Februar&quot;) monatsbetrag[1]=monatsbetrag[1]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;März&quot;) monatsbetrag[2]=monatsbetrag[2]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;April&quot;) monatsbetrag[3]=monatsbetrag[3]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Mai&quot;) monatsbetrag[4]=monatsbetrag[4]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juni&quot;) monatsbetrag[5]=monatsbetrag[5]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Juli&quot;) monatsbetrag[6]=monatsbetrag[6]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;August&quot;) monatsbetrag[7]=monatsbetrag[7]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;September&quot;) monatsbetrag[8]=monatsbetrag[8]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Oktober&quot;) monatsbetrag[9]=monatsbetrag[9]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;November&quot;) monatsbetrag[10]=monatsbetrag[10]+ p-&gt;ausgaben.betrag;
    else if(p-&gt;ausgaben.monat==&quot;Dezember&quot;) monatsbetrag[11]=monatsbetrag[11]+ p-&gt;ausgaben.betrag;

			// der Nachfolger wird zum aktuellen Knoten
			p = p-&gt;nachfolger;
		}

		for(int i=0; i&lt;=11; i++) 
        {
        printf(&quot;im Monat: %d %2.2lf \n&quot;, monate[i], monatsbetrag[i]);
        if(monatsbetrag[i]&gt;500) printf(&quot;!!!!!!!!!!! Monatsbudget ueberschritten\n&quot;);
        }
    }
    	void auswerten2(void)
	{
         		// aktueller Knoten
		Listenelement *p = kopf;		
		while(p != NULL)
		{
			// ...Inhalt ausgeben
     if(p-&gt;ausgaben.kategorie==&quot;Urlaub&quot;){ kategoriebetrag[0]=kategoriebetrag[0] +p-&gt;ausgaben.betrag; kategorie[0]==(&quot;Urlaub&quot;);}   
    else if(p-&gt;ausgaben.kategorie==&quot;Tanken&quot;){ kategoriebetrag[1]=kategoriebetrag[1] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Tanken&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Miete&quot;){ kategoriebetrag[2]=kategoriebetrag[2] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Miete&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kleidung&quot;){ kategoriebetrag[3]=kategoriebetrag[3] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kleidung&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Sex&quot;){ kategoriebetrag[4]=kategoriebetrag[4] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Sex&quot;);}
    else if(p-&gt;ausgaben.kategorie==&quot;Kino&quot;){ kategoriebetrag[5]=kategoriebetrag[5] +p-&gt;ausgaben.betrag; kategorie.push_back(&quot;Kino&quot;);}
			// der Nachfolger wird zum aktuellen Knoten
			   p = p-&gt;nachfolger;
       }		
		for(int i=0; i&lt;kategorie.size(); i++) 
        {
       std::cout&lt;&lt;kategorie.at(i); 
       std::cout&lt;&lt;kategoriebetrag[i]&lt;&lt;&quot;\n&quot;; 
       }
     }
};

int main()
{
    int i=0;
	// Beispielsätze
	Ausgaben ausgaben, ausgaben1, ausgaben2, ausgaben3, ausgaben4, ausgaben5, ausgaben6, ausgaben7, ausgaben8, ausgaben9, ausgaben10, ausgaben11;
	ausgaben.kategorie = &quot;Miete&quot;; 
	ausgaben.monat = &quot;Januar&quot;;
	ausgaben.nummer = 10;
	ausgaben.betrag= 10;

	ausgaben1.kategorie = &quot;Tanken&quot;; 
	ausgaben1.monat = &quot;Januar&quot;;
	ausgaben1.nummer = 1;
	ausgaben1.betrag= 40;

	ausgaben2.kategorie = &quot;Kleidung&quot;; 
	ausgaben2.monat = &quot;Februar&quot;;
	ausgaben2.nummer = 4;
	ausgaben2.betrag= 100;

	ausgaben3.kategorie = &quot;Tanken&quot;; 
	ausgaben3.monat = &quot;Februar&quot;;
	ausgaben3.nummer = 2;
	ausgaben3.betrag= 150;

	ausgaben4.kategorie = &quot;Urlaub&quot;;
	ausgaben4.monat = &quot;April&quot;;
	ausgaben4.nummer = 5;
	ausgaben4.betrag= 503;

	ausgaben5.kategorie = &quot;Miete&quot;; 
	ausgaben5.monat = &quot;Mai&quot;;
	ausgaben5.nummer = 6;
	ausgaben5.betrag= 10;

	ausgaben6.kategorie = &quot;Tanken&quot;; 
	ausgaben6.monat = &quot;April&quot;;
	ausgaben6.nummer = 7;
	ausgaben6.betrag= 40;

	ausgaben7.kategorie = &quot;Kleidung&quot;; 
	ausgaben7.monat = &quot;April&quot;;
	ausgaben7.nummer = 3;
	ausgaben7.betrag= 100;

	ausgaben8.kategorie = &quot;Tanken&quot;; 
	ausgaben8.monat = &quot;Juli&quot;;
	ausgaben8.nummer = 7;
	ausgaben8.betrag= 130;

	ausgaben9.kategorie = &quot;Urlaub&quot;;
	ausgaben9.monat = &quot;April&quot;;
	ausgaben9.nummer = 9;
	ausgaben9.betrag= 106;

	ausgaben10.kategorie = &quot;Urlaub&quot;;
	ausgaben10.monat = &quot;Dezember&quot;;
	ausgaben10.nummer = 10;
	ausgaben10.betrag= 56;

	ausgaben11.kategorie = &quot;Sex&quot;;
	ausgaben11.monat = &quot;Novenmber&quot;;
	ausgaben11.nummer =13;
	ausgaben11.betrag= 56;

	AusgabenListe ausgabene;
	ausgabene.hinzufuegen(ausgaben);
	ausgabene.hinzufuegen(ausgaben1);
	ausgabene.hinzufuegen(ausgaben2);
	ausgabene.hinzufuegen(ausgaben3);
	ausgabene.hinzufuegen(ausgaben4);
	ausgabene.hinzufuegen(ausgaben5);
	ausgabene.hinzufuegen(ausgaben6);
	ausgabene.hinzufuegen(ausgaben7);
	ausgabene.hinzufuegen(ausgaben8);
	ausgabene.hinzufuegen(ausgaben9);
	ausgabene.hinzufuegen(ausgaben10);
	ausgabene.hinzufuegen(ausgaben11);
	ausgabene.elementeAnzeigen();

    ausgabene.auswerten1();

    ausgabene.auswerten2();

	ausgabene.loeschen();

	std::cin.get();

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2512604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512604</guid><dc:creator><![CDATA[Julia_w]]></dc:creator><pubDate>Sun, 23 Oct 2016 18:16:37 GMT</pubDate></item></channel></rss>