Ziffern anhängen



  • Hallo zusammen,
    ich habe gerade ein paar Syntaxprobleme. Ich möchte über cin eine Zahl angeben und diese soll dann einfach an die zuletzt eingegeben Zahl angehängt werden.

    Also so:

    Zahl1 = 3
    Ich gebe nun 5 ein:
    Zahl1+=5 --> 35 //;)

    Ich möchte, dass nur eine Variable gebraucht wird, aber das hier funzt ja definiert nicht:

    zahl=zahl+cin>>zahl;

    Wie kann ich das machen?
    Vielen Dank
    lg, freakC++



  • void append(int& num) {
      int tmp;
      cin >> tmp;
      num = num*10 + tmp;
    }
    
    //
    int Zahl;
    append(Zahl);
    append(Zahl);
    

    z.B.



  • #include <iostream>
    
    int main ()
    {
     int zahl = 22;
     int temp = 0;
     std::cin >> temp;
    
     zahl *= 10;
     zahl += temp;
    }
    

    Ich bezweifle, dass es ohne eine temporäre Zahl geht..


  • Mod

    freakC++ schrieb:

    Ich möchte, dass nur eine Variable gebraucht wird

    Warum?

    edit:
    Und hier eine (ungetestete) Möglichkeit, sofern du einen Iterator nicht als Variable ansiehst:

    istream_iterator<int> in (cin);  
    
    int zahl=(*in) * 10;
    
    in++;
    zahl += *in;
    


  • Hallo,
    das mit einer Variable war nicht so geistreich! Es dürfen auch mehrere sein.

    Vielen Dank für eure Hilfe!

    lg, freakC++


  • Mod

    freakC++ schrieb:

    Hallo,
    das mit einer Variable war nicht so geistreich! Es dürfen auch mehrere sein.

    Vielen Dank für eure Hilfe!

    lg, freakC++

    Dann bekommst du es aber doch selber hin, oder?



  • int main()
    {
        std::string ZahlAlsString;
        int ZahlAlsZahl;
    
        while(true) //oder was auch immmer
        {
            char ziffer;
            cin>>ziffer;
            ZahlAlsString+=ziffer;
            std::stringstream Str; 
            if(Str<<ZahlAlsString) ; //ggf exeption
            if(Str>>ZahlAlsZahl); //ggf exeption
        }
    }
    

    Ist nicht wirklich performant aber einfach zu verstehen und Sicher


Anmelden zum Antworten