Einlesen einzelner Ziffern



  • Ok, so in etwa hatte ich mir das gedacht.
    Aber, die Zahl habe ich mir schon von Mathematica bestimmen lassen.
    Jetzt bräuchte ich nur noch das Ziffernweise einlesen...^^



  • Slabic schrieb:

    Ok, so in etwa hatte ich mir das gedacht.
    Aber, die Zahl habe ich mir schon von Mathematica bestimmen lassen.
    Jetzt bräuchte ich nur noch das Ziffernweise einlesen...^^

    das geht dann ganz schnell.

    int summe=0;
    ifstream in("zahl.txt");
    char ch;
    while(in>>ch)
      summe+=(ch-'0')
    return summe;
    

    edit: noch testen, ob Mathematica \n\r oder sowas dranbaut mit 2^10==1024. wenns damit klappt und Mathematica keine zeilenumbrüche einfügt, sollte es klappen.
    teste zusätzlich das ergebnis nochmal, indem du die letze ziffer prüfst, also

    int x=1;
    for(int i=1;i<1000;++i)
       x=x*2%10;
    

    wenn die auch stimmt, sollte alles ok sein.



  • Wunderbar, danke.

    Das Ergebnis ist richtig.

    P.s. So ähnlich hatte ich das auch gemacht gehabt, nur statt '0', 48 geschrieben gehabt, was aber irgendwie nicht ging. Evtl. irgendwo vertan.

    Kannst du mir vielleicht noch hier helfen:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-238451.html



  • Slabic schrieb:

    nur statt '0', 48 geschrieben gehabt, was aber irgendwie nicht ging.

    woanders war das fehlerchen. 48 ist genausogut wie '0'. die '0' hat allein den vorteil, daß man die ascii-tabelle nicht im kopf haben muß.


Anmelden zum Antworten