alompar Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Γεια σας παιδια ειμαι αρχαριος στα αρχεια!Σας δινω ενα κωδικα στον οποιο δεν καταλαβαινω γιατι δεν δουλευει και επισης πως χρησιμοποιειται το argv αντι για ενα αρχειο σε txt? #include <stdio.h> int main(int argc, char *argv[]) { FILE *f; char c; f = fopen(argv[1],"w"); if (f == NULL) return(1); do { c = getchar(); fputc(c,f); } while (c != '~'); fflush(f); fclose(f); return (0); } Ευχαριστω πολυ για την βοηθεια
karabouzouk... Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 >#include <stdio.h> int main(int argc, char *argv[]) { FILE *f; char c; f = fopen(argv[1], "w"); if (f == NULL){ printf("error while opening the file...\n\n"); return (1); } do { c = getchar(); fputc(c, f); } while (c != '~'); fclose(f); return (0); } Το argc και argv χρησιμοποιούνται όταν καλείς το πρόγραμμά σου από τη γραμμή εντολών για να μπορείς να διαχειρίζεσαι τις παραμέτρους που περνάς.. To argc είναι ο αριθμός των παραμέτρων που έχεις περάσει και το argv ειναι ένας πίνακας που κάθε του στοιχείο έχει και μία από τις παραμέτρους που έχεις περάσει. Στο πρόγραμμά σου για να δουλέψει πρέπει στη γραμμή εντολών αφού πας στη διαδρομή που έχεις αποθηκεύσει το αρχείο να γράψεις το όνομα του προγράμματος μετά κενό και μετά το όνομα του αρχείου που θελεις να δημιουργήσεις για να περάσει ώς παράμετρος... δλδ myprogramm testingtext.txt
bnvdarklord Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 ο πινακας argv ειναι ενας πινακας συμβολοσειρών που περνει τιμές οταν τρεχεις το προγραμμα σου. Δηλαδη αν γραψεις στο command line file.exe neoarxeio (οπου file.exe το ονομα του προγραμματος σου) το argv[1] θα παρει την τιμή neoarxeio, οποτε ειναι σαν να λες fopen("neoarxeio", "w"); Το προγραμμα σου νομιζω δουλευει σωστα :\ edit karabouzouk... με προλαβες
tespa_2002 Δημοσ. 14 Ιανουαρίου 2010 Δημοσ. 14 Ιανουαρίου 2010 Δεν πήγαμε στο μάθημα αυτή την εβδομάδα, ε;
alompar Δημοσ. 15 Ιανουαρίου 2010 Μέλος Δημοσ. 15 Ιανουαρίου 2010 Eυχαριστω παιδια για τη βοηθεια! Κατι αλλο να ρωτησω.Μηπως ξερετε πως γινεται να κανω debugging(gdb) αλλα παραλληλα να τρεξω και το αρχειο.δηλαδη το ./myprogram test.txt πως μπορω να το κανω debug ολο μαζι?
npapak Δημοσ. 16 Ιανουαρίου 2010 Δημοσ. 16 Ιανουαρίου 2010 Θα τρέξεις κανονικά το gdb και όταν θα πατήσεις run για να τρέξει το πρόγραμμα δίπλα θα βάλεις το όνομα του αρχείου. Δηλαδή: >gcc -g lala.c -o lala >gdb lala και μετά: r test.txt Έτσι θα τρέξει με παράμετρο το αρχείο test.txt
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.