Vector läuft nicht !!



  • Hallo!

    Arbeite gerade das Buch Einführung in die Programmierung mit C++ durch
    jetzt bin ich bei Kapitel 4 angekommen und hier gehts um die Vektoren.
    Bei Übung 6 schleudert es mich ... Das Programm so wie ich es geschrieben habe scheint mir richtig zu sein ... aber der Compiler kommt mit einer langen Liste an Fehlermeldungen die alle zusammen keinen Sinn ergeben, bzw. ich nicht ableiten kann wo nun der Fehler liegen sollte.

    Aufgabe ist: Einen Vektor einzurichten mit den ausgeschriebenen Zahlen von Null bis Neun. Dann soll eine Eingabeschleife gemacht werden und in dieser Eingabeschleife sollen diese ausgeschriebenen Zahlen in Ziffern umgewandelt werden und vice versa innerhalb der gleichen Schleife...

    So sieht mein Programm aus:

    #include<iostream>
    #include<stdafx.h>
    #include<conio.h>
    #include<string>
    #include<vector>
    #include<algorithm>
    #include<cmath>
    #include<stdio.h>
    using namespace std;
    inline void keep_window_open(){char ch; cin>>ch;}
    
    void main()
    {
    	int auswahl;
    	vector<string>zahl(10);
    
    	zahl[0]="null";
    	zahl[1]="eins";
    	zahl[2]="zwei";
    	zahl[3]="drei";
    	zahl[4]="vier";
    	zahl[5]="fuenf";
    	zahl[6]="sechs";
    	zahl[7]="sieben";
    	zahl[8]="acht";
    	zahl[9]="neun";
    
    	cout<<"\nDieses Programm wandelt Eingaben aus !  ";
    	cout<<"\n\nGeben Sie bitte eine ausgeschriebene Zahl zwischen 'null' und 'neun' ";
    	cout<<"\noder eine Zahl zwischen 0 und 9 das Programm wird es jeweils auswerten und ausgeben";
    
    	int i;
    	string eingabe;
    //Eingabe
    	cout<<"\nGeben Sie bitte eine ausgeschriebene Zahl zwischen 'null' und 'neun' ein !!";
    	while(cin>>eingabe)
    	{
    		for(i=0;i<zahl.size();i++)
    		{
    		if(eingabe==zahl[i]) cout<<i;
    		if(eingabe==i) cout<<zahl[i];
    		}
    	}
    
    	while(!kbhit());
    }
    

    Fehlermeldungen: ca. 30 Stück ..
    z.B.: Warning C4018 '<': signd und unsigned Konflikt
    error C2784: "bool std::operator ==(const std::basic_string ....

    und so weiter .. macht für mich alles keinen Sinn.
    Für mich sieht das Programm richtig aus ... aber anscheinend doch nicht ...
    Vielleicht kann da mal jeman drüber sehen, was ich falsch gemacht hab.

    Danke.



  • if(eingabe==i) cout<<zahl[i];
    

    Hier vergleichst du eine Zahl int einem String. Du musst die Zahl erst in einen String umwandeln.

    void main()
    

    Ich wuerde das void durch int ersetzen.

    Das sind die einzigen Fehler, die mein Compiler bemaengelt. Ich habe noch stdafx.h, conio.h und kbhit() herausgenommen.


Anmelden zum Antworten