Γράψιμο στα αρχεία
Τα στοιχεία μπορούν να γραφτούν στο αρχείο χρησιμοποιώντας fputc και fprintf. Το ακόλουθο παράδειγμα χρησιμοποιεί το fgetc και fputc τις λειτουργίες για να κάνει ένα αντίγραφο ενός αρχείου κειμένων.
#include <stdio.h>
int main()
{
FILE *in, *out;
int key;
if ((in = fopen("tarun.txt", "r")) == NULL)
{
puts("Unable to open the file");
return 0;
}
out = fopen("copy.txt", "w");
while (!feof(in))
{
key = fgetc(in);
if (!feof(in))
fputc(key, out);
}
fclose(in);
fclose(out);
return 0;
}
Η λειτουργία fprintf μπορεί να χρησιμοποιηθεί για να γράψει τα σχηματοποιημένα στοιχεία σε ένα αρχείο.
fprintf(out, "Date: %02d/%02d/%02d\n",
day, month, year);
Επιχειρήματα γραμμών εντολής με το γ
Ο καθορισμός Ansi γ για τη δήλωση της) λειτουργίας main(ej'naj καθένας:
int main() or int main(int argc, char **argv)
Η δεύτερη έκδοση επιτρέπει στα επιχειρήματα για να περαστεί από τη γραμμή εντολής. Η παράμετρος argc είναι ένας μετρητής επιχειρήματος και περιέχει τον αριθμό παραμέτρων που περνούν από τη γραμμή εντολής. Η παράμετρος argv είναι το διάνυσμα επιχειρήματος που είναι μια σειρά δεικτών στις σειρές που αντιπροσωπεύουν τις πραγματικές παραμέτρους που περνούν.
Το ακόλουθο παράδειγμα επιτρέπει σε οποιοδήποτε αριθμό επιχειρημάτων για να περαστεί από τη γραμμή εντολής και τα τυπώνει έξω argv[0 ] είναι το πραγματικό πρόγραμμα. Το πρόγραμμα πρέπει να οργανωθεί από μια υπαγόρευση εντολής.
#include <stdio.h>
int main(int argc, char **argv)
{
int counter;
puts("The arguments to the program are:");
for (counter=0; counter<argc; counter++)
puts(argv[counter]);
return 0;
}
Εάν το όνομα προγράμματος ήταν count.c, θα μπορούσε να κληθεί ως εξής από τη γραμμή εντολής.
count 3
or
count 7
or
count 192 etc.
Το επόμενο παράδειγμα χρησιμοποιεί τις διαχειριζόμενες ρουτίνες αρχείων για να αντιγράψει ένα αρχείο κειμένων σε ένα νέο αρχείο. Παραδείγματος χάριν το επιχείρημα γραμμών εντολής θα μπορούσε να κληθεί όπως:
txtcpy one.txt two.txt
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *in, *out;
int key;
if (argc < 3)
{
puts("Usage: txtcpy source destination\n");
puts("The source must be an existing file");
puts("If the destination file exists, it will be
overwritten");
return 0;
}
if ((in = fopen(argv[1], "r")) == NULL)
{
puts("Unable to open the file to be copied");
return 0;
}
if ((out = fopen(argv[2], "w")) == NULL)
{
puts("Unable to open the output file");
return 0;
}
while (!feof(in))
{
key = fgetc(in);
if (!feof(in))
fputc(key, out);
}
fclose(in);
fclose(out);
return 0;
}
|