"Frage zu Arrays "



  • hallo Leute,
    hoffe ,dass meine frage hier richtig ist und zwar es geht um arrays.
    wie kann ich nummerische werte in ein arrey oder mehrere einlesen , und übliche operationen mit denen machen.
    das habe ich so versucht aber es geht nicht, wieso?

    #include<iostream>
    using namespace std;
    int main(){
    long feld []={};
    cin>>feld;
    cout<<feld [0]+ feld [2]<<endl;

    system("pause");
    return 0;
    }

    als string geht aber die operationen kann ich nicht machen.
    zb:
    #include<iostream>
    using namespace std;
    int main(){
    char feld[10];

    cin>>feld;
    int i=1;

    cout<<feld[1]+feld[i]<<endl;--> das ergebniss stimmt nicht.

    system("pause");
    return 0;
    }
    danke für euere hilfe



  • std::vector<int> feld;
    std::istream_iterator<int> in(std::cin), eos;
    std::copy(in, eos, std::back_inserter(feld));
    std::cout << feld[0] + feld[2] << std::endl;
    

    Das wirst du zwar nicht verstehen, aber so macht man das normalerweise. Du sollst aber wissen, dass ein Array immer die gleiche Grösse hat und du deshalb einen std::vector verwenden musst.



  • du hast recht , ich verstehe es überhaupt nicht.
    bitte schreibe es mir wie es in meinem code ausschaut.
    eine vollständige erklärung natürlich wäre viel besser für mich.



  • wie ich sehe du verwendest eine funktion ...
    ich brauche es in einem möglicht einfacherem beispiel , wie meiner ,danke grüsse.



  • #include <iostream>
    using namespace std;
    int main(){
      long feld[2];
      cin >> feld[0] >> feld[1];
      cout << feld[0] + feld[1]<<endl;
    }
    


  • nein , also leider es ist kein antwort für mich.

    Bleistift schrieb:

    ##include<iostream>
    using namespace std;
    int main(){
    long feld []={};
    cin>>feld;//--->mich interesiert ob es möglicht ist hier zb. 123 eingeben , und dass compiler eine zuordnung macht :long feld []={1,2,3} automatisch????
    cout<<feld [0]+ feld [2]<<endl;
    
    system("pause");
    return 0;
    }
    


  • //--->mich interesiert ob es möglicht ist hier zb. 123 eingeben , und dass compiler eine zuordnung macht :long feld []={1,2,3} automatisch????

    Nein, das ist nicht möglich.

    Die Größe des Arrays muss zur Compilezeit feststehen, ansonsten musst du auf std::vector, std::list, etc. ausweichen. Aber auch dann musst du die Eingabe in einer Schleife erledigen, etwa so:

    #include <list>
    #include <iostream>
    using namespace std;
    int main()
    {
      list<int> feld;
      for (int tmpVal; cin >> tmpVal; /* */)
        feld.push_back(tmpVal);
    }
    

Log in to reply