Escrita às limas
Os dados podem ser escritos à lima usando o fputc e o fprintf. O seguinte exemplo usa as funções do fgetc e do fputc fazer uma cópia de uma lima de texto.
#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;
}
A função do fprintf pode ser usada escrever dados formatados a uma lima.
fprintf(out, "Date: %02d/%02d/%02d\n",
day, month, year);
Linha de comando argumentos com C
A definição do ANSI C para declarar () a função principal é qualquer uma:
int main() or int main(int argc, char **argv)
A segunda versão permite que os argumentos sejam passados da linha de comando. O argc do parâmetro é um contador do argumento e contem o número dos parâmetros passados da linha de comando. O argv do parâmetro é o vetor de argumento que é uma disposição dos ponteiros às cordas que representam os parâmetros reais passados.
O seguinte exemplo permite que todo o número dos argumentos seja passado da linha de comando e imprime-os para fora. o argv [0] é o programa real. O programa deve ser funcionado de um alerta de comando.
#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;
}
Se o nome do programa fosse count.c, poderia ser chamado como segue da linha de comando.
count 3
or
count 7
or
count 192 etc.
O exemplo seguinte usa a lima que segura rotinas para copí uma lima de texto a uma lima nova. Por exemplo a linha de comando argumento podia ser chamada como:
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;
}
|