Array in for schleife aus 0 setzten?



  • Hallo, ich bin ein Newbee in sachen c++ und habe nun ein problem , was für c++ler bestimmt en klacks ist 🤡

    Ich möchte eine IP Adresse einlesen und habe dafür ein 4er Array angelegt wo ich nach einander mit cin die Okteten rein schiebe. Ich habe aber das Problem das es nur beim ersten mal funktioniert und er danach werte wie 192.000 in einem Array ha, das zweite hat dann 168.00 usw, müste aber 192.168 sein....

    Jetzt dachte ich mir das ich evtl vor jedem bestücken des Arrays dieses auf 0 setten müste?

    zb in einer For schleife, nur weiß ich nicht wie ich den zb ip[1] oder [2] hoch zählen soll?! ip[1]++ oder +1 ?

    Danke für euere Hilfe !

    Gruß
    Thorsten



  • Weis nicht, ob ichs richtig verstanden hab, deshalb rate ich mal:
    Nimmst du als Datentyp für das Array float, double oder einen anderen Datentyp?



  • Poste mal den Code, sonst kann man dazu nicht viel sagen.
    Wenn du die Elemente eines Arrays in einer for-Schleife durchlaufen willst, benutzt du die Zählvariable als Index.

    for(int i=0;i<anzahlderelemente;i++) {
        ip[1]=0;
    }
    

    Das ist aber in deinem Fall wahrscheinlich nicht das Problem. Es könnte,wie schon gesagt wurde sein, dass du den falschen Datentyp verwendet hast, wenn er dir xx.00 anzeigt.



  • float ip[4];



  • #include <iostream.h>

    void main(void)
    {
    int eingabe;
    float ip[4];

    cout<<"Auswahl =>";
    cin>> eingabe;
    cout<< endl;

    if (eingabe==0 && eingabe>5)
    cout<<"FALSCHE EINGABE";
    else
    {
    switch (eingabe)
    {
    case 1:{
    couut<<"Die Aktuelle Netzwerkeinstellungen werden gesichert..Bitte warten!";
    }
    case 2:{
    for (int i=0; i<=3; i++)// hier soll array auf 0 gesetzt werden
    {

    cout<<"Bitte geben Sie nun die gewünschte Konfiguraion ein:\n";
    cout<< endl;
    cout<< endl;
    cout<<"IP Adresse erstes oktet=";
    cin>> ip[0];
    cout<< endl;
    cout<<"IP Adresse zweites oktet=";
    cin>> ip[1];
    cout<< endl;
    cout<<"IP Adresse drittes oktet=";
    cin>> ip[2];
    cout<< endl;
    cout<<"IP Adresse viertes oktet=";
    cin>> ip[3];
    cout<< endl;



  • float ist schlicht und ergreifend der falsche Datentyp für die Speicherung der ip-adresse, short[4] ist da geigneter. Um das Array mit Nullen zu füllen, machst du einfach

    for (int i=0; i<4; ++i) {
      ip[i] = 0;
    }
    

    Mfg, smasher1985



  • smasher1985 schrieb:

    float ist schlicht und ergreifend der falsche Datentyp für die Speicherung der ip-adresse, short[4] ist da geigneter.

    char ist sogar noch besser. 🙂
    Eine gängige IP hat schließlich 32 Bit, was (unsigned) char[4] in der Regel darstellt.


Anmelden zum Antworten