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

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

Δημοσ.

καλησπερα σας!

Προσπαθω να γραψω ενα κομματι κωδικα σε c και συναντω καποιο προβλημα.

Το προγραμμα θα δεχεται ηλικια ονομα και επιθετο ενος ατομου και θα τα αποθηκευει σε ενα αλφαριθμητικο( θα ειναι της μορφης: 32 panos mp  ) και στην συνεχεια να πληκτρολογω την διευθυνση σε ενα δευτερο αλφαριθμητικο(θα ειναι της μορφης: διεθυνση 800 45678  )

 

ο κωδικας(τον εχω επισυναψει) που εχω γραψει οταν τον τρεχω το προγραμμα κρασαρει.

 

ευχαριστω για την βοηθεια εκ των προτερων!

post-368002-0-95774900-1447427970_thumb.png

Δημοσ.

Θα πρέπει να ορίσεις τα age, name, sur ως πίνακες χαρακτήρων, όπως έκανες με το add (η ηλικία θα μπορούσε να είναι και integer). Επίσης το gets("add") θα πρέπει να γίνει gets(add).

Δημοσ.

Αν και με πρόλαβε ο από πάνω, γενικά προσπαθείς να αποθηκεύσεις σειρά χαρακτήρων συν τον NUL character (διάβασε τι είναι το string και πως το διαχειρίζεται η C) σε μνήμη που χωράει απλά και μόνο έναν χαρακτήρα.

 

Επίσης το age δεν έχει λόγο να είναι string. Ints, ints, ints... lovely ints...

 

Αλλά κάνετε που κάνετε C στη σχολή... πατήστε έστω στο πρώτο μάθημα να δείτε τι γίνεται... και μετά ποτέ γιατί θα συνεχίσετε να γράφετε K&R syntax...

Δημοσ.

Ένα αλφαρθμητικο σημαινει ένας πινακας χαρακτηρων με έναν '\0' χαρακτήρα στο τέλος του. Ο χαρακτηρας αυτος στην C σηματοδοτεί το τέλος μιας συμβολοσειράς.Οι συναρτησεις scanf και gets δεν είναι καλές επιλογές επειδή η πρωτη διαβάζει μέχρι να βρει έναν white space character ενώ η δευτερη έναν χαρακτήρα αλλαγής γραμμής.Καλυτερα ψάξε για την fgets.

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

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

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

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

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

Σύνδεση

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

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