anyp4kouo_ydor Δημοσ. 15 Ιουλίου 2011 Δημοσ. 15 Ιουλίου 2011 γεια σας παιδιά, λοιπόν: έφτιαξα ένα πρόγραμμα που δημιουργεί ένα αρχείο δίσκου και αποθηκεύει έναν αριθμό και ένα που τον διαβάζει. Το πρώτο δουλεύει καλά αλλά το δεύτερο δουλεύει εμένα. Μου εμφανίζει "dose tin timi" το οποίο υπάρχει στο πρόγραμμα εγραφής. Σαν να μπερδεύονται τα δύο προγράμματα. Η πλάκα είναι ότι έχω ξαναγράψει τον ίδιο κώδικα με άλλους τίτλους και λειτουργεί. Επιπλέον το ίδιο μου κάνει και με την getchar, σε άλλα προγράμματα δουλεύει, σε αυτά όχι. Βοηθάτε μπας και μάθουμε προγραμματισμό Παρακάτω σας παραθέτω τον κώδικα (χρησιμοποιώ τον dev c++): >#include "stdio.h" #include "stdlib.h" int main() { FILE *fp; int timi,x; char *on_arxeiou="c:\\arxeia diskou c\\timi.txt"; char *leitourgia="wb"; printf("dose tin timi"); scanf("%d",&timi); if ((fp=fopen(on_arxeiou,leitourgia))==NULL) { fprintf(stderr,"error in opening"); exit(1); } if (fwrite(&timi,sizeof(int),1,fp)!=1) { fprintf(stderr,"error in writing"); exit(1); } fclose(fp); printf("\n%d",timi); while (x<1000000000) { x++; } return 0; } >#include "stdio.h" #include "stdlib.h" int main() { FILE *fp; int timi; char *on_arxeiou="c:\\arxeia diskou c\\timi.txt"; char *leitourgia="rb"; if ((fp=fopen(on_arxeiou,leitourgia))==NULL) { fprintf(stderr,"error in opening"); exit(1); } if (fread(&timi,sizeof(int),1,fp)!=1) { fprintf(stderr,"error in reading"); exit(1); } fclose(fp); printf("\nh timi einai:%d",timi); getchar(); return 0; }
MeTaXaS4 Δημοσ. 15 Ιουλίου 2011 Δημοσ. 15 Ιουλίου 2011 όταν γράφεις κώδικα βάζε τον μέσα σε <code> tags ώστε να μπορούμε να το διαβάσουμε.
warchief Δημοσ. 15 Ιουλίου 2011 Δημοσ. 15 Ιουλίου 2011 πως ονομάζεις τα αρχεία με τον κώδικα (.c) ? Επίσης καλό θα ήταν όταν ποστάρεις κώδικα να τον περικλείεις μέσα σε [ code ] [/code ] (χωρίς τα κενά μεταξύ [c και e] edited: MeTaXaS4 με πρόλαβες
anyp4kouo_ydor Δημοσ. 15 Ιουλίου 2011 Μέλος Δημοσ. 15 Ιουλίου 2011 Επίσης καλό θα ήταν όταν ποστάρεις κώδικα να τον περικλείεις μέσα σε [ code ] [/code ] (χωρίς τα κενά μεταξύ [c και e] έφτιαξα τον κώδικα πως ονομάζεις τα αρχεία με τον κώδικα (.c) ? αν εννοείς το όνομα των προγραμμάτων: <<δοκιμή στα αρχεία δίσκου>>,<<δοκιμή στα αρχεία δίσκου άνοιγμα>>
migf1 Δημοσ. 15 Ιουλίου 2011 Δημοσ. 15 Ιουλίου 2011 Δεν βλέπω κάποιο πρόβλημα, έκανα συνάρτηση την εγγραφή σε αρχείο και το δοκίμασα και τρέχει μια χαρά: > #include "stdio.h" #include "stdlib.h" // ------------------------------------------------------------------------------------ int write_file( void ) { FILE *fp; int timi,x; char *on_arxeiou = "a.dat"; char *leitourgia = "wb"; printf("dose tin timi"); scanf("%d",&timi); if ( (fp=fopen(on_arxeiou,leitourgia)) == NULL ) { fprintf(stderr,"error in opening"); return 0; } if ( fwrite(&timi, sizeof(int), 1, fp) != 1 ) { fprintf(stderr,"error in writing"); return 0; } fclose(fp); printf("\n%d",timi); while (x < 1000000000) x++; return 1; } // ------------------------------------------------------------------------------------ int main() { FILE *fp; int timi; char *on_arxeiou = "a.dat"; char *leitourgia = "rb"; write_file(); if ( (fp=fopen(on_arxeiou,leitourgia)) == NULL ) { fprintf(stderr,"error in opening"); exit(1); } if (fread(&timi, sizeof(int), 1, fp) !=1 ) { fprintf(stderr,"error in reading"); exit(1); } fclose(fp); printf("\nh timi einai:%d",timi); fflush(stdin); getchar(); return 0; }
Mακάβριος Δημοσ. 15 Ιουλίου 2011 Δημοσ. 15 Ιουλίου 2011 Το πρώτο δουλεύει καλά αλλά το δεύτερο δουλεύει εμένα. Μου εμφανίζει "dose tin timi" το οποίο υπάρχει στο πρόγραμμα εγραφής. Τρέχεις το δεύτερο πρόγραμμα και σου τρέχει το πρώτο? Έκανες επανεκκίνηση το Dev-C++ να τα τρέξεις από την αρχή?
anyp4kouo_ydor Δημοσ. 15 Ιουλίου 2011 Μέλος Δημοσ. 15 Ιουλίου 2011 Τρέχεις το δεύτερο πρόγραμμα και σου τρέχει το πρώτο? Έκανες επανεκκίνηση το Dev-C++ να τα τρέξεις από την αρχή? φυσικά φίλε μου και σου λέω: ο ίδιος κώδικας κάτω από άλλο όνομα προγράμματος, τρέχει κανονικά
anyp4kouo_ydor Δημοσ. 17 Ιουλίου 2011 Μέλος Δημοσ. 17 Ιουλίου 2011 ρε παιδιά καμιά ιδέα για το τι φταίει;
migf1 Δημοσ. 17 Ιουλίου 2011 Δημοσ. 17 Ιουλίου 2011 Κάτι με το setup σου πρέπει να παίζει και όχι με το πρόγραμμα. Δοκίμασε να κάνεις compile και να τρέξεις τα προγράμματά σου από γραμμή εντολών ή κατέβασε και την Pelles C. ΥΓ. Άσχετο, το Dev C++ είναι abandonware.
anyp4kouo_ydor Δημοσ. 18 Ιουλίου 2011 Μέλος Δημοσ. 18 Ιουλίου 2011 Κάτι με το setup σου πρέπει να παίζει και όχι με το πρόγραμμα. Δοκίμασε να κάνεις compile και να τρέξεις τα προγράμματά σου από γραμμή εντολών ή κατέβασε και την Pelles C. είχες δίκιο. η pelles c με έσωσε. ευχαριστώ
migf1 Δημοσ. 18 Ιουλίου 2011 Δημοσ. 18 Ιουλίου 2011 είχες δίκιο. η pelles c με έσωσε. ευχαριστώ Χαίρομαι Έχει και πολύ καλό debugger η Pelles-C (στα Project options ενεργοποίηση για τον compiler, τον assembler και στον linker τα debug-information... αν έχεις εγκαταστήσει την 64-μπιτη έκδοση, στον Linker βάλε σκέτο "CodeView format" ). Κατόπιν με δεξί κλικ -> Toggle Brakepoint στις γραμμές που σε ενδιαφέρουν βάζεις brakepoints και διαλέγοντας μετά Debug αντί για Run, σε σταματάει σε εκείνες τις γραμμές για να αποφασίσεις μετά αν θα προχωρήσεις βήμα-βήμα δείχνοντάς σου ανά πάσα στιγμή τις τιμές των μεταβλητών σου, τη στοίβα στη μνήμη, τον κώδικα σε assembly, κλπ.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.