Τασο καταρχην ευχαριστω για τις απαντησεις σου...
tasos:Αυτό που κάνεις στο δεύτερο παράδειγμα λέγεται type casting. Είναι μια χαρά λύση, θα μπορούσες να το γράψεις κι έτσι:
int x = (int) ascii_x;
Αν εννοεις αντι για int x=ascii_x-'0'; να γραψω int x = (int) ascii_x; , το δοκιμασα αλλα μου επιστρεφει τον ascii,πχ εβαλα το 2 και μου εκτυπωσε το 50.
Τελικα χρησιμοποιησα την atoi,δεν μου δουλεψε την πρωτη φορα γιατι δεν ειχα βαλει το & στην παρενθεση,απλα αναγκαστηκα εισαγω τον αριθμο σε char και οχι σε int(χωρις να ειναι προβλημα αυτο).
Οχι δεν εχω καποιο κολλημα με την getche απλα δεν γνωριζω καποιο αλλο τροπο για διαβασμα δεδομενων απο πληκτρολογιο χωρις την χρηση του enter και επειδη προκειται για μια πολυ απλη εφαρμογη calculator,ειναι προβλημα η χρηση του enter μετα απο καθε εισαγωγη δεδομενων.
Αυτο το δοκιμασα και δουλευει κανονικα
int myint;
myint = 0;
ascii_x = getche();
while(ascii_x != ' ') {
myint = myint*10 + (int)ascii_x;
ascii_x = getche();
}
απλα δεν καταλαβα πως η Myint περιεχει τον αριθμο που πληκτρολογω αφου πολλαπλασιαζεται με το δεκα.
Πως γινεται στην συνθηκη αυτη
while(ascii_x != ' ') τον χαρακτηρα που θα πληκτρολογω για να φευγω απο τον βρονχο να τον χρησιμοποιω στην συνεχεια του προγραμματος προφανως σε εναν αλλο βρονχο αμεσως μετα?
Θα βολευε δηλαδη να φευγω απο τον βρονχο μολις πατησω το '+' ας πουμε γιατι αν ειναι να παταω το space ειναι σαν να παταω το enter οποτε ενα και το αυτο.