vedeli by ste mi prosim niekto poradit ako nacitat zo standardneho vstupu do premennej (najlepsie asi cez scanf) velmi velke cisla napr 60 miestne cislo. (ale aj väcsie)
Podle toho, co s tím chceš dělat. Do standardních číselných datových typů se to samozřejmě nevejde, ale není problém to načíst jako string. Jestli s tou hodnotou chceš provádět výpočty, tak můžeš použít třeba GMP.
Dokud je druhý znak stringu nenulový, tak je string delší než 1 znak. (Za předpokladu, že se něco načetlo. Kontrolu chyb jsem vynechal.)
To pole má 100 znaků, 99 ve scanfu znamená, že se má načíst maximálně 99 znaků (+ ukončovací nula).
scanf("%99s", cislo); znamená, že načte 99 znaků ze vstupu. Že je to řetězec, funkce scanf na konec doplní znak s hodnotou 0x00. To znamená, že funkce naplní maximálně 100 znaků což je velikost pole, kam se řetězec ukládá. Je to hlídání meze pole a ochrana před zápisem za pole do paměti, která mi nepatří.
cislo[1] - víceciferné číslo bude mít na této pozici znak, jednociferné hodnotu 0x00. Funkce sprintf(cislo, "%u", soucet); vytváří mezivýsledek uložený jako řetězec na stejné místo jako zadané číslo (zadané číslo se tím ztratí) Takže sčítá cifry tak dlouho, dokud nedostane jednociferný součet
Otázka je, zda by se z klávesnice tolik znaků dalo zadat. Pokud by byl vstup ze souboru, tak takové množství znaků možné je. Pak je možné načítat a zpracovávat po částech. I při 2 mil. cifer by pak na součet cifer měl stačit bez problémů int.