Zahlen in array einlesen



  • Hi,
    also bin noch sehr unerfahren auf diesem Gebiet.
    jedenfalls habe ich folgendes Problem. Ich möchte eine Zahlenkette in einen Array einlesen und mit den einzelnen Ziffern weiterarbeiten.
    Die Zahlenkette muss vorher eingegeben werden.

    Ich hab versucht das Ganze mit cin.getline zu machen, aber das geht nur wenn der Array vom Typ char ist. Die Werte sollen aber vom Typ int sein, damit ich mit denen rechnen kann.
    Hoffe jemand kann mir helfen, vllt bin ich ja auch völlig aufm Holzweg.

    Hier nochmal meine Versuche:

    cout<<"Bitte Zahlenkette eingeben"<<endl;
    char kette[50];
    cin.getline(kette, sizeof(kette));
    

    Jetzt ist der Array vom Typ char, soll aber eigentlich vom Typ int sein, das geht aber nicht mit getline.

    Grüße Magnus



  • Huhu,

    das ist das C-Unterforum. Das was du machst ist C++.

    int i_arr[100];
    std::cin >> i_arr[i]; // i kann bei dir eine Laufvariable oder eine Konstante sein.
    


  • printf("Bitte Zeichenkette eingeben:");
    char kette[50];
    scanf("%s", kette);    //ohne Größenüberprüfung, müsste aber irgendwie gehen
    


  • Danke, ich werds mir gleich mal zu Gemüte führen.
    Ja soll auch c++ sein, bin ich wohl aufs falsche Forum gekommen.



  • Beide Vorschläge hauen bei mir nicht richtig hin. Entweder bin ich zu doof, oder ich habs Problem falsch erklärt. Also jetzt was konkreter.

    Ich gebe eine Zahlenkette ein (zB 123456, ohne Leerzeichen etc. alle Zahlen aneinander). Bei der sollen immer ein Zahlenpaar in ein Feld des Arrays in dieser Form fürs Beispiel:
    array[0]=12
    array[1]=34
    array[2]=56

    ich könnte einen array erstellen mit 1,2,3,4,5,6
    101+2=12
    10
    3+4=34
    10*5+6=65

    Nur ich kann mit den Werten des Arrays keine mathematischen Operationen durchführen, weil sie ja vom Typ char sind.

    Wenns jetzt nix wird überspring ich den Teil meiner Übungen erstmal.



  • Also:
    Erstmal, mit cin kenne ich mich nicht so gut aus.
    2. du musst ein int-Array machen:

    int abc[20]
    

    Dann musst du eine Schleife machen, die immer 2 Zeichen als Integer einliest, da kenne ich mich nicht so gut aus, müsste aber etwa so aussehen:

    for (int i = 0; i < 20; i++)
    {
        scanf("%2d", &abc[i]);    //mit der 2 bin ich mir nicht so ganz sicher
    }
    

Log in to reply