migf1 Δημοσ. 28 Οκτωβρίου 2013 Δημοσ. 28 Οκτωβρίου 2013 Η fflush(stdin) δουλεύει μονάχα σε Windows, παραβιάζοντας τα πρότυπα της C. Δηλαδή το πρόγραμμά σου δεν πρόκειται να δουλεύει πουθενά αλλού. Κάτι άλλο, στη C δεν χρειάζεται να κάνεις escape τα single quotes, ούτε το ήδη escaped \n. Σχετικά με το διάβασμα εισόδου από κονσόλα σε C, ρίξε μια ματιά εδώ (και κυρίως στο 2ο link που δίνω εκεί). 1
Aggeluska Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 σε ευχαριστω για τα λινκς , θα τα διαβασω, απλα θελω να σου πω πως δεν μπορω να χρησιμοποιησω εντολες/πραγματα γενικα που ο καθηγητης δεν μας εχει πει ακομα.
Star_Light Δημοσ. 28 Οκτωβρίου 2013 Δημοσ. 28 Οκτωβρίου 2013 Η fflush(stdin) δουλεύει μονάχα σε Windows, παραβιάζοντας τα πρότυπα της C. Δηλαδή το πρόγραμμά σου δεν πρόκειται να δουλεύει πουθενά αλλού. Κάτι άλλο, στη C δεν χρειάζεται να κάνεις escape τα single quotes, ούτε το ήδη escaped \n. Σχετικά με το διάβασμα εισόδου από κονσόλα σε C, ρίξε μια ματιά εδώ (και κυρίως στο 2ο link που δίνω εκεί). Aκριβώς. Εκει ξεχωρίζουν και τα καλά βιβλια που αναφέρουν τα portability tips
Aggeluska Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 Κάτι της μορφής; scanf("%s", &str); a = str[0]; b = str[1]; //εαν είναι 1 μόνο χαρακτήρας αυτό θα είναι \0 ή \n switch(a){ case '&': if(b == '&') //make operation && else //make operation & break; case '|': if(b == '|') //make operation || else //make operation | break; } σορυ επειδη ειμαι noobas , καταλαβαινω απο το παραπανω πως οταν πατας & κανει την πραξη && και ποτε κανει την πραξη &??? γιατι λεει else do & , else δλδ ? αν πατησω π.χ Κ θα κανει την & πραξη ? Τωρα που ειπατε για βιβλια, εγω διαβαζω το : Η γλωσσα C σε βαθως , των εκδοσεων κλειδαριθμος, τι εχετε να πειτε για το βιβλιο ? εγω το βρισκω αρκετα καλο προς το παρον
migf1 Δημοσ. 28 Οκτωβρίου 2013 Δημοσ. 28 Οκτωβρίου 2013 σε ευχαριστω για τα λινκς , θα τα διαβασω, απλα θελω να σου πω πως δεν μπορω να χρησιμοποιησω εντολες/πραγματα γενικα που ο καθηγητης δεν μας εχει πει ακομα. Πολύ σωστά! Δεν έχετε μάθει ακόμα strings?
Aggeluska Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 οχι , εγω τα εχω διαβασει , αλλα επισημα δεν τα εχουμε μαθει
Aggeluska Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 Loops και συναρτήσεις έχετε μάθει; for loop, while loop, do-while
Aggeluska Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 συναρτήσεις όχι; functions Ειναι αυτα ε? οχι ακομα , μεσα στον Νοεμβρη
migf1 Δημοσ. 28 Οκτωβρίου 2013 Δημοσ. 28 Οκτωβρίου 2013 functions Ειναι αυτα ε? οχι ακομα , μεσα στον Νοεμβρη Οπότε αντί για scanf() δοκίμασε να διαβάζεις τα 2 σύμβολα κάπως έτσι, ώστε να μη χρειάζεσαι την ασύμβατη fflush(stdin)... int main( void ) { int i; char c='\0', c1='\0', c2='\0'; // ορισμός & αρχικοποίηση σε '\0' τριών char // διάβασμα μέσω c μέχρι 2 χαρακτήρες από την κύρια είσοδο // ή μέχρι να πατηθεί ENTER (\n) for (i=0; i < 2 && '\n' != (c=getchar()); i++) { if (0 == i) // αν είμαστε στην 1η επανάληψη της λούπας c1 = c; else // αν είμαστε στην 2η επανάληψη της λούπας c2 = c; } // χειροκίνητο flush περιττών χαρακτήρων από την γραμμή εισόδου if ( '\n' != c ) // αν το προηγούμενο for ΔΕΝ έχει σταματήσει λόγω ENTER while ('\n' != getchar() ) // διάβασε κι αγνόησε ότι περισσεύει μέχρι το ENTER ; /* void */ printf( "%c%c\n", c1,c2 ); // έλεγξε εδώ τις τιμές των c1 και c2, και προχώρα ανάλογα return 0; } Σημείωση: είναι γραμμένο μόλις τώρα, στο πόδι, οπότε μπορεί να μου έχει ξεφύγει κάτι. Σε 4-5 δοκιμές που έκανα δείχνει να λειτουργεί πάντως as intended. Το ζουμί είναι να κάνεις χειροκίνητα flush την γραμμή εισόδου αν και όταν χρειάζεται.
Aggeluska Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 επειδη εχω μονο 3 μηνες που ασχολουμε με προγραμματισμο κια δεν πολυ καταλαβαινω ακριβως τι εκανες στον κωδικα , σου ειναι ευκολο να κανεις ενα edit sto post sou και με σχολια διπλα στον κωδικα να εξηγισεις τι κανεις ?
SpirosLouis Δημοσ. 28 Οκτωβρίου 2013 Δημοσ. 28 Οκτωβρίου 2013 Κατι τέτοιο ειναι εντελώς λάθος διοτι διαφορετικα υπολογιστικά συστηματα μπορει να χρησιμοποιούν διαφορετικά σύνολα χαρακτήρων. .. Τι εννοείς; Στην αρχή με ένα type cast βρίσκεις σε ποιον αριθμό ανήκουν οι χαρακτήρες αυτοί και χρησιμοποιείς αυτή τη μεταβλητή τύπου int για να κάνεις τη σύγκριση μετά.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα