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

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

Δημοσ.
Παιδια εχω φάει παρα πολλες ωρες και εχω κολλήσει εδω περα εχω κανει ενα προγραμμα και θελω να κανω το παρακάτω αλλα δεν ξέρω πως μπορεις καποιος να βοηθήσει ; 

Να γραφεί παραλλαγή του προγράμματος στην οποία τα δεδομένα θα

διαβάζονται από αρχείο κειμένου (text file) το όνομα του οποίου θα δίδεται ως

όρισμα στην γραμμή εντολών.

Δημοσ.

Πρώτα πρέπει να πάρεις το όνομα του αρχείου που δόθηκε ως όρισμα.

 

Μετά να ανοίξεις το αρχείο.

 

Και μετά να διαβάσεις τα δεδομένα από μέσα και να τα περάσεις σε μεταβλητές που θα χρησιμοποιήσεις κανονικά στη συνέχεια.

 

Σε ποιό ακριβώς σημείο κολλάς; Τι έχεις κάνει ως τώρα;

  • Like 1
Δημοσ.

Δεν μπορώ να ανοίξω το αρχείο. 


και αυτος ειναι ο τροπος που του λεω να το ανοιξει

fr=fopen(argv[1],"r");
 if (fr==NULL)
 {
 printf("error");
 exit(2);
 }

Πρώτα πρέπει να πάρεις το όνομα του αρχείου που δόθηκε ως όρισμα.

 

Μετά να ανοίξεις το αρχείο.

 

Και μετά να διαβάσεις τα δεδομένα από μέσα και να τα περάσεις σε μεταβλητές που θα χρησιμοποιήσεις κανονικά στη συνέχεια.

 

Σε ποιό ακριβώς σημείο κολλάς; Τι έχεις κάνει ως τώρα;

Δεν μπορώ να ανοίξω το αρχείο. 

 

και αυτος ειναι ο τροπος που του λεω να το ανοιξει

fr=fopen(argv[1],"r");
 if (fr==NULL)
 {
 printf("error");
 exit(2);
 }
Δημοσ.

Αυτό που πρέπει να κάνεις λοιπόν λέγεται debugging.

 

Εφόσον η fopen αποτυχαίνει πας και διαβάζεις τι γίνεται σ' αυτή την περίπτωση και βλέπεις ότι μπορείς στη συνέχεια να διαβάσεις τη global μεταβλητή errno για να πάρεις μια τιμή που σου λέει τι πήγε στραβά, ή ακόμα απλούστερα να κάνεις perror("fopen failed") για να σου πει τι πήγε στραβά σε απλά αγγλικά.

 

Βεβαίως όλα αυτά τα λέω για σένα επειδή στην προκειμένη δεν είναι δύσκολο να μαντέψεις τι πήγε στραβά, δεν υπάρχει το αρχείο που λες ή ακόμα χειρότερα δεν υπάρχει η argv[1] (δεν έχει περαστεί όρισμα). Οπότε ξεκίνα από εκεί.

  • Like 1

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

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

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

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

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

Σύνδεση

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

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