Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)


edit λυθηκε

 

Επεξ/σία από Επισκέπτης
Δημοσ.

Επειδή πατάς το ENTER για να δώσεις είσοδο (επιλογή εντολής) πράγμα που βάζει ένα newline στο τέλος του input buffer. Αυτό το newline δεν το πειράζει η scanf, οπότε η gets() πάει να δει τι γίνεται και βλέπει ότι ήδη έχεις δεδομένα στο input buffer. A! Ένα newline! ΟΚ οπότε διαβάσαμε γραμμή και επιστρέφει αμέσως.

 

Solution: βάλε τη scanf να φάει το newline (και τυχόν άλλα space στο τέλος μετά τον αριθμό) με

scanf("%d ", &choice); // %d κενό
  • Like 1
Δημοσ.

Καλησπέρα. Δούλεψε αλλά μου δημιούργησε 30 επιπλέον προβλήματα, πέραν του ότι έσβησε οτιδήποτε είχα γράψει στο file για να περάσει το νέο string (νόμιζα αυτή είναι η διαφορά του r+ από το w+, για αυτό έβαλα r+) μόλις περνάω το string και επιστρέφει στο μενού για κάποιο λόγο χρειάζεται 2 φορές να γράψω το νούμερο. πχ για να κάνω exit που είναι η επιλογή 15(15 + (enter) + 15 + (enter)). Και στο file μου έβγαλε το string που πέρασα συν δίπλα κάτι αλαμπουρνέζικα

 

edit: αμέσως μετα τη scanf έβαλα μια fflush(stdin) και μου διόρθωσε το πρόβλημα με την εισαγωγή 2 φορές του αριθμού, τα αλαμπουρνέζικα όμως παραμένουν στο file).

 

edit2: βρήκα και λύση για τα αλαμπουρνέζικα. είναι γιατί έγινε το override από τα προηγούμενα που είχα γραμμένα. πως το κάνω όμως να μη κάνω override τα προηγούμενα;

Δημοσ.

Να ανοίξεις το file για append και όχι για write, και είσαι jet. 

 

Και όταν ρωτάς σε forums, μη βάζεις όλο τον κώδικα, αλλά εκεί που έχεις πρόβλημα μόνο.

 

  • Moderators
Δημοσ.

Ευτυχώς που έκανες edit τα posts σου, μην τυχόν κι έχει κανένας παρόμοιο πρόβλημα και μπορεί να βοηθηθεί...

  • Like 7
Δημοσ.

Ευτυχώς που έκανες edit τα posts σου, μην τυχόν κι έχει κανένας παρόμοιο πρόβλημα και μπορεί να βοηθηθεί...

Το μόνο που έχω να προσθέσω είναι ότι προσωπικά, αν είχα έστω και βάσιμη υποψία ότι θα γίνει αυτό δεν πρόκειται να απαντούσα. Τώρα ξέρω.

  • Like 3
Δημοσ.

Το μόνο που έχω να προσθέσω είναι ότι προσωπικά, αν είχα έστω και βάσιμη υποψία ότι θα γίνει αυτό δεν πρόκειται να απαντούσα. Τώρα ξέρω.

Και μετά λένε, γιατί τους παίρνετε από τα μούτρα κλπ κλπ..

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...