Het schrijven aan Dossiers
De gegevens kunnen aan het dossier worden geschreven gebruikend fputc en fprintf. Het volgende voorbeeld gebruikt fgetc en fputc de functies om een copie van een tekstdossier te maken.
#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;
}
De fprintffunctie kan worden gebruikt om geformatteerde gegevens aan een dossier te schrijven.
fprintf(out, "Date: %02d/%02d/%02d\n",
day, month, year);
De Argumenten van de Lijn van het bevel met C
De ANSI C definitie voor het verklaren van de) functie main(is één van beiden:
int main() or int main(int argc, char **argv)
De tweede versie laat argumenten toe om van de bevellijn worden overgegaan. De parameter argc is een argumentteller en bevat het aantal parameters die van de bevellijn worden overgegaan. De parameter argv is de argumentvector die een serie van wijzers aan koorden is die de daadwerkelijke overgegaane parameters vertegenwoordigen.
Het volgende voorbeeld laat om het even welk aantal argumenten toe om van de bevellijn worden overgegaan en drukt hen uit argv[0 ] is het daadwerkelijke programma. Het programma moet van een bevelherinnering worden in werking gesteld.
#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;
}
Als de programmanaam count.c was, zou het als volgt van de bevellijn kunnen worden geroepen.
count 3
or
count 7
or
count 192 etc.
Het volgende voorbeeld gebruikt de dossier behandelende routines om een tekstdossier aan een nieuw dossier te kopiëren. Bijvoorbeeld zou het argument van de bevellijn kunnen worden geroepen zoals:
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;
}
|