giostau
Πολύ δραστήριο μέλος
Ο giostau αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 44 ετών. Έχει γράψει 1.945 μηνύματα.

29-01-06

14:18
Μήπως κάποιο καλό παιδί γνωρίζει πώς θα κάνω το εξής:
Θέλω να διαβάσω κάποια δεδομένα από αρκετά αρχεία, των οποίων τα ονόματα είναι σειριακά... (ας πούμε file1.txt, file2.txt κλπ...)
θέλω να κάνω κάτι τέτοιο:
FILE *data;
for (i=0; i<4; i++)
{
data = fopen("filei.txt","r+");
fscanf(data,"%f %f\n",&x, &y);
fclose(data);
}
ξέρει κανείς πώς γίνεται;;;
(να αλλάζει δηλαδή εκείνο το i που έχω με κόκκινο....)
μην πει κανείς να το κάνω χωρίς for, ένα ένα τα αρχεία, θα αρχίσω να δαγκώνω!!!

Θέλω να διαβάσω κάποια δεδομένα από αρκετά αρχεία, των οποίων τα ονόματα είναι σειριακά... (ας πούμε file1.txt, file2.txt κλπ...)
θέλω να κάνω κάτι τέτοιο:
FILE *data;
for (i=0; i<4; i++)
{
data = fopen("filei.txt","r+");
fscanf(data,"%f %f\n",&x, &y);
fclose(data);
}
ξέρει κανείς πώς γίνεται;;;
(να αλλάζει δηλαδή εκείνο το i που έχω με κόκκινο....)
μην πει κανείς να το κάνω χωρίς for, ένα ένα τα αρχεία, θα αρχίσω να δαγκώνω!!!


Σημείωση: Το μήνυμα αυτό γράφτηκε 19 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
emufear
Πολύ δραστήριο μέλος
Ο emufear αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 38 ετών και επαγγέλλεται Φοιτητής/τρια. Έχει γράψει 1.730 μηνύματα.

29-01-06

14:37
Code:
FILE *data;
char i;
int j;
char name[20];
char name2[20];
strcpy(name,"file");
strcpy(name2,".txt");
for (i='0'; i<'4'; i++)
{
strcat(name,i);
strcat(name,name2);
data = fopen(name,"r+");
fscanf(data,"%f %f\n",&x, &y);
fclose(data);
for( j = 0; name[j]!='\0'; j++)
name[j] = '\0'; // string is being re-nulled
strcpy(name,"file"); // here we go again :P
}
Για δοκίμασε αυτό from the top of my head
Σημείωση: Το μήνυμα αυτό γράφτηκε 19 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

29-01-06

20:57
Μπορείς επίσης να το κάνεις με την βοήθεια της C εντολής sprintf ως εξής:
Καλή συνέχεια!

Code:
#include <stdio.h>
#include <io.h>
int nFirst_File_Number;
char szFilename[4096]; // A relative large enough path buffer (4KB)
float fVal[2];
FILE *Stream;
void main()
{
for(nFirst_File_Number=0;nFirst_File_Number<4;nFirst_File_Number++)
{
[b]sprintf(szFilename,"file%d.txt",nFirst_File_Number);[/b]
// Assure file existence
if(access(szFilename,0)!=-1)
{
// Open file for read in default _fmode mode (text by default)
if((Stream=fopen(szFilename,"r"))!=NULL)
{
fscanf(Stream,"%f %f",&fVal[0],&fVal[1]);
fclose(Stream);
printf(" [%s] = %.1f %.1f\n",szFilename,fVal[0],fVal[1]);
}
else
printf(" DOS Error: File read access denied - %s\n",szFilename);
}
}
}
Καλή συνέχεια!

Σημείωση: Το μήνυμα αυτό γράφτηκε 19 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
giostau
Πολύ δραστήριο μέλος
Ο giostau αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 44 ετών. Έχει γράψει 1.945 μηνύματα.

30-01-06

09:30
Ευχαριστώ πολύ παίδες!!!
Με γλυτώσατε από πάρα πολύ κόπο!!!!

Με γλυτώσατε από πάρα πολύ κόπο!!!!
Σημείωση: Το μήνυμα αυτό γράφτηκε 19 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Χρήστες Βρείτε παρόμοια
-
Φορτώνει...