ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

...ασύγχρονα μαθήματα γλώσσας C

ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

Δημοσίευσηαπό linuxs » 19 Μαρ 2011, 17:27

ΚΕΦΑΛΑΙΟ 10 - Αρχεία

τι περιέχει αυτό το κεφάλαιο...
Με την γλώσσα C μπορούμε να κάνουμε πάρα πολλά σχετικά με τα αρχεία μας, όπως να δημιουργήσουμε ένα νέο αρχέιο, να αντιγράψουμε τα περιεχόμενα απο ένα αρχείο σε άλλο και πολλά άλλα!

Τι χρειάζεστε για να δουλέψετε με αρχεία στην C
1. την βιβλιοθήκη, stdlib,
2. τις συναρτήσεις fopen() και fclose() για άνοιγμα και κλείσιμο του αρχείου αντίστοιχα,
3. τρόπους επανάληψης-loop για διάβασμα απο αρχείο,
4. χρήση μιας συνάρτησης που θα σας διαβάζει το κείμενο απο το αρχείο όπως, fscanf() ή fgets().
Τα παραπάνω ήταν ενδεικτικά και δεν είναι ο τρόπος που δουλεύουν όλα τα προγράμματα που έχουν να κάνουν με αρχεία. Απλά για να μπορέσετε να μπείτε λίγο λίγο στο κλίμα με τα αρχεία καλό είναι να τα έχετε στο νού σας! Εξάλου αυτά θα ακολουθήσω σε ολόκληρο τον οδηγό. :)


Βασική μεθοδολογία για το πως να δουλέψετε
1. δημιουργία μεταβλητών (τύπου FILE *) ΕΝΑ ΓΙΑ ΚΑΘΕ αρχείο που ανοίγετε,
2. άνοιγμα αρχείου με την συνάρτηση fopen(),
3. έλεγχος αν το άνοιγμα του αρχείου έγινε σωστά και εκτύπωση κατάληλου μυνήματος,
4. χρήση ενός while loop για διάβασμα απο το αρχείο. Στην ουσία θα το "σκανάρουμε" και θα παίρνουμε οτι χρειάζόμαστε,
5. χρήση τις συνάρτησης fclose() για κάθε ένα απο τα αρχεία που ανοίξατε για να τα κλείσετε!

Το παρακάτω παράδειγμα,
  • ορίζει τον τύπο FILE *
  • ανοίγει το αρχείο lala.txt
  • ελέγχει αν το άνοιγμα έγινε σωστά,
  • διαβάζει κάτι απο το αρχείο και
  • το κλείνει!

#include <stdio.h>
#include <stdlib.h>
int main(void){
FILE *infile;
char buf[81];
infile = fopen("lala.txt","r");
if(infile == NULL){
printf("File does not exist.\n");
exit(1);
}

while(fgets(buf, 81, infile) != NULL){
fputs(buf, stdout);
}
fclose(infile);
return 0;
}


Ανάλυση:
Στις δύο πρώτες γραμμές όπως ήδη θα ξέρετε έχουμε προσθήκη των βιβλιοθηκών στο πρόγραμμά μας. Τώρα, εκτός απο την stdio.h που είναι η standard βιβλιοθήκη προσθέτουμε και την stdlib που έχει τις υπόλοιπες συναρτήσεις που θα χρησιμοποιήσουμε. Μετά ακολουθεί ο κώδικας της main σε { }. Μέσα στον κώδικα, έχουμε:

Για να μπορέσεουμε να επεξεργαστούμε αρχεία θα πρέπει να δημιουργήσουμε έναν pointer τύπου FILE *(προσοχή πρέπει να είναι κεφαλάια τα γράμαμτα), Αυτός ο pointer για να καταλάβετε “πολυ απλά” ουσιαστικά συνδέει το πρόγραμμά μας με το αρχείο. Οπότε θα έχουμε FILE * ακολουθούμενο απο ένα όνομα της επιλογής σας. Η επόμενη γραμμή είναι ένας πίνακας χαρακτήρων 81 θέσεων και θα εξηγηθεί αργότερα γιατί δεν μας χρειάζεται τώρα(το 81 είναι τυχαίο!).
Μετά, χρησιμοποιούμε την συνάρτηση fopen() για να “ανοίξουμε” το αρχείο και για να το συνδέσουμε με το πρόγραμμά μας. Αυτό που επιστρέφει η fopen (σκεφτείτε πως είναι το αρχείο) το αποθηκεύει στην μεταβλητή infile που είναι ο pointer που δημιουργήσαμε στην αρχή! Άρα στην ουσία αυτό που επιστρέφει έιναι ένας poiter *.
Οι επόμενες 4 γραμμές είναι προαιρετικές. Αυτό που κάνουν είναι να εξετάζουν αν το “άνοιγμα του αρχείου” έγινε σωστά και να εκτυπώνουν κατάληλο μήνυμα. Καλό είναι να βάζετε αυτόν το έλεγχο, γιατί σε περίπτωηση που κάνετε ένα λάθος με το αρχείο για παράδειγμα και δεν το βρίσκετε δεν θα καταλάβετε τι ακριβώς φταίει. Οι επόμενες 3 γραμμές διαβάζουν το αρχείο , με ένα while loop.
Το διάβασμα ενός αρχείου γίνεται με παραπάνω απο έναν τρόπο. Στην συγκεκριμένη περίπτωση, χρησιμοποιούμε την fgets για να δειαβάσουμε και σταματάμε όταν αυτό που διαβάσουμε είναι NULL που σημαίνει πως είμαστε στο τέλος του αρχείου! Παράλληλα, οτι διαβάσουμε το εκτυπώνουμε στην οθόνη με την fputs.
Και εδώ, μπορούμε να κάνουμε πολλά. Για παράδειγμα θα μπορούσαμε αυτό που διαβάζουμε να το τοποθετήσουμε σε ένα άλλο αρχείο η ακόμη και να το αποθηκεύσουμε σε έναν πίνακα και να το επεξεργαστούμε αργότερα! Επαρερχόμαστε στον κώδικα και αυτό που μένει είναι αν κλείσουμε το αρχείο. Για ακόμη μια φορά, και αυτό είναι προαιρετικό και πιθανώς να σας τρέξει σωστά χωρίς κάν να το γράψετε. Αλλα, το σωστό είναι όταν δεσμεύουμε χώρο με την fopen για να ανοίξουμε ένα αρχείο να τον αποδεσμεύυομε με την fclose.

Ενδεικτικό αρχείο
Κάντε Copy/Paste το παρακάτω κείμενο και αποθηκεύστε το ως “lala.txt“ στον ίδιο φάκελο που είναι και το πρόγραμμά σας.
This file is the lala.txt what everything it says here is not correct! Just to know. I am a big guy that have fun with computer mashines! I like them!!!


Όλα τα παραπάνω ήταν ένα παράδειγμα για το πώς περίπου θα ήταν καλό να χειρίζεστε αρχεία! Ας τα πάρουμε τώρα ένα ένα...

Άνοιγμα Αρχείου

Όταν ανοίγουμε ένα αρχείο σημαίνει πως τα δεδομένα που περιέχει είνα διαθέσιμα για ανάγνωση η γραφή σε κάποιο άλλο αρχείο. Θυμιθείτε πως στην ουσία η C ακόμη και την οθόνη(std. output) την διαχειρίζεται ως ένα αρχείο. Άρα εκτυπώνοντας τα σε κάποιο αρχείο που λέγεται οθόνη μπορούμε να τα δούμε. Στην C η συνάρτηση που μας επιτρέπει το άνοιγμα ενός αρχείο λέγεται fopen(). Ορίζεται ως εξής:
Κώδικας: Επιλογή όλων
FILE *fopen(const char*filename, const char mode);

Επιστρέφει: Δείκτη τύπου FILE * ή NULL σε περίπτωση που για κάποιον λόγο αποτύχει!
Ορίσματα: Παίρνει δύο ορίσματα, ένα για το αρχείο που θα ανοίξει και το άλλο για το πως θα το ανοίξει. Δηλαδή όταν ανοίξει τι θέλουμε να κάνουμε.

1ο όρισμα;
Το filename μπορεί να είναι ένα όνομα αρχείο όπως file.txt αλλα και ένα path. Με άλλα λόγια αν το αρχείο που θέλουμε να ανοίξουμε είναι στον ίδιο κατάλογο με το πρόγραμμά μας τότε βάζουμε απλά το όνομά του. Σε περίπτωση όμως που βρίσκεται κάπου αλλού τότε θα πρέπει να βάλετε το path. Δηλαδή να γράψετε κάτι σαν:
Κώδικας: Επιλογή όλων
"/home/user1/Desktop/MyFiles/file.txt"


2ο όρισμα:
Το δεύτερο όρισμα είναι το mod με το οποίο θα το ανοίξετε. Μπορείτε να το ανοίξετε για να διαβάσετε μόνο κάτι, αλλά ίσως θέλετε και να γράψετε κάτι. Ίσως απο την άλλη θέλετε και τα δύο. Παρακάτω μπορείτε να δείτε κάποια mod που πρέπει να βάλετε ανάλογα με το τι θέλετε να κάνετε:











"r"
Ανοίγει ένα υπάρχον αρχείο για διάβασμα
"w"
Δημιουργεί ένα κενό αρχείο για εγγραφή ή εάν υπάρχει ήδη ένα αρχείο με το ίδιο όνομα σβήνει τα περιεχόμενά του και γράφει στο τρέχων αρχείο
"a"
Κάνει append σε ένα αρχείο που αν δεν υπάρχει δημιουργήται. Αυτό σημαίνει οτι πάει και επεκτείνει το αρχείο αρχίζοντας να γράφει απο το τέλος. Δεν σβήνει κάτι απο τα υπάρχοντα!
"r+"
Ανοίγει ένα αρχείο για ανάγνωση και εγγραφή. Το αρχείο πρέπει να υπάρχει!
"w+"
Δημιουργεί ένα αρχείο για εγγραφή και ανάγνωση. Εάν υπάρχει ήδη κάποιο αρχείο με το ίδιο όνομα το περιεχόμενό του διαγράφεται!
"a+"
Ανοίγει ένα αρχείο για διάβασμα και επέκταση(appending). Όλες οι εγγραφές θα γίνονται στο τέλος του αρχείου και δεν σβήνεται τίποτα! Το αρχεό δημιουργήται αν δεν υπάρχει και να σημειώσω πως μπορούμε να παίξουμε με το πού θα γίνει η εγγραφή σε ένα αρχείο με κατάληλους pointers.


Συναρτήσεις Εισόδου-Εξόδου

Συγκεκριμένα για τα αρχεία υπάρχουν οι συναρτήσεις fscanf() και fprintf(). Οι συναρτήσεις αυτές είναι παρόμοιες με τις scnaf() και printf() αλλα έχουν και ένα 'f' μπροστά που σημαίνει πως θα γίνει κάτι με αρχεία. Πιο συγκεκριμένα,

Μορφοποιημένη έξοδος αρχείου...
Η fprintf() είναι μια συνάρτηση που περιέχεται στην βιβλιοθήκη stdlib αν δεν κάνω λάθος και ουσιαστικά μπορεί να έχει και την χρήση της printf αλλα μπορεί να κάνει και άλλα. είναι πιό γενική απο την printf και χρησιμοποιείται όπως θα δείτε παρακάτω.

Κώδικας: Επιλογή όλων
int fprintf(FILE *fp, char *fmt, ...);

Στην ουσία αν το προσέξατε αυτό που αλλάζει έιναι που θα γίνει η έξοδος. Τα ορίσματα 2, 3 υπάρχουν και στην printf(). Απλά εδώ μπορούμε να πούμε οτι, κοίταξε να δείς εγώ θέλω να τα εκτυπώσω στην οθόνη οπότε θα πρέπει αν βάλουμε ως πρώτο όρισμα "stdout". Ακόμη μπορούμε να βάλουμε και ένα αρχείο. Κάτι που ανοίξαμε προηγουμένως. Γενικά μας προσφέρει μεγάλη ευελιξία και καλό είναι να την έχουμε υπόψην μας!

Κώδικας: Επιλογή όλων
int fscanf(FILE *fp, char *fmt, ...);

Όπως και παραπάνω έτσι και εδώ δεν υπάρχει τεράστια διαφορά με την scnaf απλά, εδώ το πρώτο όρισμα δηλώνει απο που θα διαβάσει. Μπορεί να είναι ένα αρχείο που προηγουμένως ανοίξαμε ή ακόμη και η λέξη "stdin" που υποδηλώνει το πληκτρολόγιο και σημαίνει πως έχουμε μια εντολή ίδια με την scanf. Είναι ακριβώς το ίδιο!


ΣΥΝΕΧΙΖΕΤΑΙ...!!! ΥΠΟΜΟΝΗ!!!
Τελευταία επεξεργασία από linuxs και 14 Ιουν 2011, 16:57, έχει επεξεργασθεί 6 φορά/ες συνολικά
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Κεφάλαιο - ARXEIA

Δημοσίευσηαπό malos » 19 Μαρ 2011, 22:46

Δεν το έχω βάλει σε <code> </code> για να φαίνονται τα χρώματα. Ένα συγγνώμη απο τους συντονιστές! :)


Καλά κάνεις! Αλλά αυτό το μπλε το ανοιχτό βγάζει μάτια. Δεν το διακρίνω με τίποτα μιλάμε. Αν θες άλλαξέ το.
Κατά τα άλλα ................

:bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow:
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1230
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Κεφάλαιο - ARXEIA

Δημοσίευσηαπό linuxs » 19 Μαρ 2011, 22:51

malos έγραψε:
Δεν το έχω βάλει σε <code> </code> για να φαίνονται τα χρώματα. Ένα συγγνώμη απο τους συντονιστές! :)


Καλά κάνεις! Αλλά αυτό το μπλε το ανοιχτό βγάζει μάτια. Δεν το διακρίνω με τίποτα μιλάμε. Αν θες άλλαξέ το.
Κατά τα άλλα ................

:bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow: :bow:


τώρα που το πρόσεξα....ναι!!!! απλά είχα κολλήσει και δεν ήξερα τι χρώμα να βάλω!! :P ευχαριστώ...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Κεφάλαιο - ΑΡΧΕΙΑ

Δημοσίευσηαπό medigeek » 19 Μαρ 2011, 23:57

Off topic:
Τα χρώματα διατηρούνται σε [quote] ;)
Απίθανη δουλειά!
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Κεφάλαιο - ΑΡΧΕΙΑ

Δημοσίευσηαπό linuxs » 20 Μαρ 2011, 00:20

medigeek έγραψε:Off topic:
Τα χρώματα διατηρούνται σε
;)
Απίθανη δουλειά!


Έφυγα για αλλαγή! ;)
Όρεξη να έχει κανείς και το παραπάνο δεν είναι τίποτα σε αυτά που μπορεί να κάνει ο άνθρωπος! ;) Σωστά?
Σε ευχαριστώ πάντως...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

Δημοσίευσηαπό linuxs » 08 Ιούλ 2011, 20:10

Αν και έχω γράψει τον οδηγό έχω απορίες...δεν σημαίνει πως ξέρω τα πάντα απο την C! ;) Η συνάρτηση fgets() διαβάζει απο ένα αρχείο και σταματά μόλις βρεί NULL χαρακτήρα η endofline. Η ερώτηση μου έχει ως εξής: Αν υπάρχει ένα αρχείο που γράφει "γλώσσα C ", (δεν φαίνεται αλλα μετά το C υπάρχουν αρκετά κενά) χρησιμοποιώντας την fgets στον buf[100] τι θα αποθηκευτεί? :/
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

Δημοσίευσηαπό migf1 » 08 Ιούλ 2011, 21:06

Ότι ακριβώς περιέχει το αρχείο (συμπεριλαμβανομένων των κενών διαστημάτων) μέχρι να συμπληρωθούν 99 χαρακτήρες και στο τέλος θα περιέχει κι ένα '\n'. Αν το αρχείο έχει λιγότερους από 99 χαρακτήρες, τότε όσους έχει συν ένα '\n' στο τέλος.

ΥΓ. Σχετικο-άσχετο, καμία γλώσσα δεν μαθαίνεται σε λιγότερο από ένα χρόνο (συν απαραίτητης πρακτικής τριβής σε διάφορα θέματα ;) )
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

Δημοσίευσηαπό linuxs » 08 Ιούλ 2011, 23:09

migf1 έγραψε:Ότι ακριβώς περιέχει το αρχείο (συμπεριλαμβανομένων των κενών διαστημάτων) μέχρι να συμπληρωθούν 99 χαρακτήρες και στο τέλος θα περιέχει κι ένα '\n'. Αν το αρχείο έχει λιγότερους από 99 χαρακτήρες, τότε όσους έχει συν ένα '\n' στο τέλος.

ΥΓ. Σχετικο-άσχετο, καμία γλώσσα δεν μαθαίνεται σε λιγότερο από ένα χρόνο (συν απαραίτητης πρακτικής τριβής σε διάφορα θέματα ;) )


Έχω συμπληρώσει 1 χρόνο... :P ¨οχι κάνοντας μόνο C αλλα έχω συμπληρώσει! ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

Δημοσίευσηαπό migf1 » 08 Ιούλ 2011, 23:31

linuxs έγραψε:
migf1 έγραψε:Ότι ακριβώς περιέχει το αρχείο (συμπεριλαμβανομένων των κενών διαστημάτων) μέχρι να συμπληρωθούν 99 χαρακτήρες και στο τέλος θα περιέχει κι ένα '\n'. Αν το αρχείο έχει λιγότερους από 99 χαρακτήρες, τότε όσους έχει συν ένα '\n' στο τέλος.

ΥΓ. Σχετικο-άσχετο, καμία γλώσσα δεν μαθαίνεται σε λιγότερο από ένα χρόνο (συν απαραίτητης πρακτικής τριβής σε διάφορα θέματα ;) )


Έχω συμπληρώσει 1 χρόνο... :P ¨οχι κάνοντας μόνο C αλλα έχω συμπληρώσει! ;)

Μόνο σε μια γλώσσα εννοούσα. Με την προϋπόθεση φυσικά πως όντως θες να τη μάθεις σε έκταση (όποια κι αν είναι, αλλά μία). Ένας καλός τρόπος είναι να βάζεις ως στόχο ένα project και να μην σταματάς μέχρι να το ολοκληρώσεις, και μόνο τότε να βάλεις στόχο άλλο project, λίγο πιο δύσκολο, και ούτω κάθε εξής.

Το να ξέρει κανείς τη σύνταξη πολλών γλωσσών δεν σημαίνει πως ξέρει να προγραμματίζει ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 10 - ΑΡΧΕΙΑ

Δημοσίευσηαπό linuxs » 09 Ιούλ 2011, 00:19

Ναι φυσικά! ;) +1
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Επόμενο

Επιστροφή στο Μαθήματα C