Problem mit kleinem Script [int alter[2];]



  • Hallo Zusammen und Guten Tag,

    Ich habe ein Problem mit diesem Script hier!

    #include <stdafx.h>
    #include <iostream>
    using std::cout;
    using std::cin;
    
    int main()
    {
    char name[20];
    int alter[2];
    cout <<"Wie ist dein name?";
    cin >>name;
    cout <<"Hallo " <<name<< "Ich bin Onur!";
    cout <<"Wie Alt bist du???";
    cin >>alter;
    cout <<"ich bin auch"<<alter<<"Jahre Alt";
    getchar();
    }
    

    Wen ich den Compiler laufen lasse kommt folgende Fehlermeldung!

    ------ Erstellen gestartet: Projekt: hghfh, Konfiguration: Debug Win32 ------
    Kompilieren...
    stdafx.cpp
    Kompilieren...
    hghfh.cpp
    c:\dokumente und einstellungen\onur\desktop\c++\hghfh\hghfh\hghfh.cpp(14) : error C2679: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'int [2]' akzeptiert (oder keine geeignete Konvertierung möglich)
    c:\programme\microsoft visual studio 9.0\vc\include\istream(1144): kann 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)' sein [bei der Verwendung der argumentbezogenen Suche gefunden]
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(1146): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)" [bei argumentbezogenem Lookup gefunden]
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(1148): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)" [bei argumentbezogenem Lookup gefunden]
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(1150): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)" [bei argumentbezogenem Lookup gefunden]
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(155): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(161): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(168): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(175): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(194): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(228): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(247): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(273): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(291): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(309): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(329): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(348): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(367): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(386): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(404): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(422): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    c:\programme\microsoft visual studio 9.0\vc\include\istream(441): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    bei Anpassung der Argumentliste '(std::istream, int [2])'
    Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Onur\Desktop\C++\hghfh\hghfh\Debug\BuildLog.htm" gespeichert.
    hghfh - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Habe schon viel versucht und auch Google und die Forensuche benutzt jedoch ohne Erfolg 😡



  • Warum int alter[2]; ? Das ist ein Array mit zwei Elementen vom Typ int. Da funktioniert der Streaming-Operator von cin nicht. Entweder kein Array verwenden oder cin >> alter[0] bzw cin >> alter[1].

    Schicker Datei- und Projektname übrigens. 😉

    Desweiteren solltest du:
    - std::string statt char[20] nehmen
    - die vorkompilierten Header rausnehmen





  • Vielen Dank!!!

    Jetzt durch eure Hilfe der Richtige Code
    Nur habe ich da noch eine Frage! Wie kann ich den die vorkompilierten Header
    rausnehmen? den wen ich das tu das Funzt garnix mehr. bzw erkennt ihr noch andere Fehler in meinen Script?

    #include <stdafx.h>
    #include <iostream>
    using std::cout;
    using std::cin;
    
    int main()
    {
    char name[20];
    int alter;
    cout <<"Wie ist dein name?";
    cin >>name;
    cout <<"Hallo " <<name<< "Ich bin Onur!";
    cout <<"Wie Alt bist du???";
    cin >>alter;
    cout <<"ich bin auch"<<alter<<"Jahre Alt";
    getchar();
    }
    


    1. int alter[2] ist unnütz, schließlich kannst du nicht zwei Alter gleichzeitig haben. Ich rate mal ins blaue hinein, dass du zwei ziffern einlesen willst. ein int ist aber eine zahl, die aus mehreren Ziffern bestehen kann. (der op<< bei cin stellt selber fest, wieviele Ziffern deine eingegebene Zahl hat) -> Du brauchst dich nciht um die einzelnen Ziffern zu kümmern, C++ macht das für dich.

    2. benutze am Besten erstmal std::string statt char-Arrays. das ist sicherer, einfacher zu handhaben und objektorientierter Bestandteil von C++ im Gegensatz zu den char-Arrays die eher ein C-Relikt sind.


  • Administrator

    Kann es sein, dass du die Eingabe auf 2 Zahlen beschränken wolltest? Dann fehlt es dir wohl ziemlich viel an Wissen über C++ und es wäre sinnvoll ein Tutorial (siehe FAQ) zu machen oder ein Buch, wie "C++ Primer" zu kaufen.

    Der vorkompilierte Header kannst du über die Projekteinstellungen rausnehmen. Am besten wäre es aber, wenn du unter General ein Empty Project, welches wirklich leer sein sollte, erstellst.

    Zudem redet man bei C++ Code nicht von Script, das ist was anderes.

    Grüssli



  • 1. Ja ich wollte durch [2] dem Programm sagen das die eingabe 2 Ziffenr hat
    2.Ich habe erst seit Gestern angefangen mit dem Coden
    3.Ich komme von der HTML/PhP Ecke
    4.Bin neu auf dieses Forum gestoßen 🙂

    Ich bedanke mich bei allen für die Hilfe und werde
    versuchen eure Ratschläge umzusetzen!



  • 1. mach ne Abfrage ob das Alter >= 100 ist - und gib dann eine entsprechende Fehlermeldung aus. (Obwohl Herr hesters bestimmt traurig ist wenn du ihn als fehler bezeichnest 😉 )

    2. das wird schon noch, immer schön am Ball bleiben und fragen, wenn du nicht weiterkommst, wenn du zeigst dass du dich selbst damit beschäftigt hast und nicht alles vorgekaut bekommen willst, wird dir hier immer gern geholfen.

    3. mit HTML hat C++ so ganrichts gemeinsam, PhP hat AFAIR teilweise eine ähnliche Syntax und kann auch objektorientiert verwendet werden, daher sollte der Einstieg in C++ dir etwas leichter fallen als anderen.

    4. Na dann: Herzlich willkommen 🙂



  • Vielen Dank!
    Ja das HTML nix mit C++ zutun hat habe ich inzwichen auch Deutlich gemerkt



  • Zu dem vorkompilierten Header:

    das Ding ist irgendwo bei

    /Projekteinstellungen/ C/C++ / Projektoptionen

    eingetragen. Und zwar in der Form ( /yu "stdafx.h" ) oder so ähnlich (habs nich mehr so genau im kopf).

    Wenn du auf die stdafx.h verzichten willst musst du dort den Eintrag löschen.


Anmelden zum Antworten