Der findes brugere der tror at numre kan være på mere end 11 (12) tegn.
Man kan ikke se hvad der skrives.
Man kan ikke slette
Der er ingen garanti for at '0' er 0x30
Det er ikke alle kompilere der har getch (eller noget der ligner)
Man bør 0-terminere inden man kalder atoi
Men ellers....
Det med 11 (12) tegn, ja man kan jo sige at hvis man caster til int, så bør man jo nok enlig sikre sig at det tal man har fra et array ikke overstiger max værdien for ens variabel type. Så enlig er 11 karakter jo for meget :-)
1. blev der spurgt om metoder til at blokere bogstaver, der med kommer jeg med et forslag til dette. IKKE en endelig løsning
2. nej man kan ikke slette, dog er dette ikke mere svært at tilføje end de fleste med bare lidt prog. erfaring bør kunne tilføje.
3. Hvorfor er 0 ikke lig 0x30...? Tegntabel 850, 0-9 = (0x30 - 0x39), jeg har aldrig oplevet andet. Men tør da ikke sige det!
4. nej man kan ikke se hvilket tal man skriver, erstat getch() med getche()
5. Det er muligt at ikke alle kompiler kender getch, men Borland, Dev-cpp og Visual Studio kender den, den tilhøre jo conio.h. Har aldrig hørt om compiler der ikke kan kompile den men skal da ikke sige det!
6. 0-terminere, ja det kan du have ret i. Det er naturligvis god skik.
Med venlig hilsen
Thomas Vanting
P.S i if sætningen skal OR || naturligvis erstattes med AND && (kunne jeg lige se)
[Redigeret d. 22/11-05 07:59:04 af Thomas Vanting]