Πίνακας απο FILE *  Το θέμα επιλύθηκε

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

Πίνακας απο FILE *  Το θέμα επιλύθηκε

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

Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>

int main(){
FILE *infile0;
FILE *infile1;
FILE *A[2];

A[0] = infile0;
A[1] = infile1;
return 0;
}


Το παραπάνω κάνει compile σωστά. Μπορώ να έχω μια επιβεβαίωση αν είναι σωστό παρακαλώ...? ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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: Πίνακας απο FILE *

Δημοσίευσηαπό simosx » 20 Μαρ 2011, 19:08

Είναι ορθό, ωστόσο το ερώτημα έχει να κάνει περισσότερο με δείκτες στη C.
Ετοιμάζεις κάποιο μάθημα στην ενότητα αυτή για δείκτες;
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Πίνακας απο FILE *

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

simosx έγραψε:Είναι ορθό, ωστόσο το ερώτημα έχει να κάνει περισσότερο με δείκτες στη C.
Ετοιμάζεις κάποιο μάθημα στην ενότητα αυτή για δείκτες;


Θα μπορούσαν να λείπουν? ;) Καταλαβαίνεις έτσι...?!

έγραψε:Το παραπάνω είναι για μια εργασία, client-server απλά αντί να ανοίξω 10 αρχεία(server) σκέφτηκα να βάλω τα FILE * σε πίνακα και να χρησιμοποιήσω for loop! Ελπίζω να πιάσει..
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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: Πίνακας απο FILE *

Δημοσίευσηαπό giannosfor » 21 Μάιος 2011, 20:02

Αν κατάλαβα καλά αυτό που θες να κάνεις γίνεται,οι μεταβλητές είναι απλά για να κρατάνε ένα δείκτη στο αρχείο.
Και μία μεταβλητή μπορείς να χρησιμοποιείς (αντί για πίνακα) για όλα τα αρχεία που θα ανοίξεις αρκεί πριν ανοίξεις
ένα νέο αρχείο να έχεις κλείσει το προηγούμενο ώστε να μη χάσεις το δείκτη.
Σε μπέρδεψα; :wtf:
Τώρα για client server δε ξέρω τι θες να κάνεις.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Πίνακας απο FILE *

Δημοσίευσηαπό linuxs » 21 Μάιος 2011, 23:53

όχι όχι...δεν υπάρχει πρόβλημα. Τελικά αυτό που ήθελα γίνεται ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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: Πίνακας απο FILE *

Δημοσίευσηαπό giannosfor » 22 Μάιος 2011, 00:31

Τι ήθελες να κάνεις αν επιτρέπετε,αν δε σε νοιάζει εμφάνισε το κώδικα να πάρουμε ιδέες ;)
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Πίνακας απο FILE *

Δημοσίευσηαπό linuxs » 22 Μάιος 2011, 17:28

Οκ. Δεν έχω πρόβλημα. Θα το ποστάρω αλλα δεν ήταν τίποτα. Με την πρώτη ευκαιρία ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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: Πίνακας απο FILE *

Δημοσίευσηαπό Ntelispak » 04 Ιουν 2011, 11:42

Ο κώδικας που έχεις γράψει είναι σωστός. Δημιουργεί, όμως, διπλασιασμό δεδομένων. Σε περίπτωση που θέλεις να το αποφύγεις, μπορείς απλά να δημιουργήσεις ένα array από FILE pointers και να το χρησιμοποιήσεις κατευθείαν. Δηλαδή θα μπορούσες να κάνεις κάτι σαν
Κώδικας: Επιλογή όλων

FILE *pfs[] = {fopen("file1","openmode1"), fopen("file2","openmode2")};

ή, αν το πρόγραμμα σου δεν ανοίγει όλα τα αρχεία ταυτόχρονα, κάτι σαν
Κώδικας: Επιλογή όλων

FILE *pfs[2];
pfs[0] = fopen("file1","openmode1");

Δεν ξέρω τι ακριβώς θέλεις να κάνεις, οπότε μπορεί να μην σε ενδιαφέρει. Ελπίζω πάντως να βοήθησα.
Οδηγείες ΧρήσηςΤutorialsΑναζήτηση
⇛ Linux: noob ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Πολύ Καλά
⇛ Xubuntu 9.04 (Jaunty Jackalope) 64bit
⇛ Intel Core2Duo E6600 (2.4GHZ 4MB) ┃ Asus P5B 965 ┃ 2x1GB DDR2 667MHZ ┃ Radeon X1600P 256MB ┃ MAudio Audiophile 192
Άβαταρ μέλους
Ntelispak
babeTUX
babeTUX
 
Δημοσιεύσεις: 36
Εγγραφή: 19 Ιουν 2009, 20:15
Τοποθεσία: Μεταμόρφωση Αττικής
Εκτύπωση

Re: Πίνακας απο FILE *

Δημοσίευσηαπό migf1 » 04 Ιουν 2011, 12:15

Συμφωνώ κι εγώ με τον φίλο Ntelispak. Αν και προσωπικά θα αρχικοποιούσα σε NULL (περισσότερο ως θέμα αρχής, όχι δηλαδή πως είναι λάθος το αντίθετο)...
Κώδικας: Επιλογή όλων

FILE *pfs[2] = { NULL, NULL };


Ntelispak έγραψε:Ο κώδικας που έχεις γράψει είναι σωστός. Δημιουργεί, όμως, διπλασιασμό δεδομένων. Σε περίπτωση που θέλεις να το αποφύγεις, μπορείς απλά να δημιουργήσεις ένα array από FILE pointers και να το χρησιμοποιήσεις κατευθείαν. Δηλαδή θα μπορούσες να κάνεις κάτι σαν
Κώδικας: Επιλογή όλων

FILE *pfs[] = {fopen("file1","openmode1"), fopen("file2","openmode2")};

ή, αν το πρόγραμμα σου δεν ανοίγει όλα τα αρχεία ταυτόχρονα, κάτι σαν
Κώδικας: Επιλογή όλων

FILE *pfs[2];
pfs[0] = fopen("file1","openmode1");

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


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

cron