Em uma aula de linguagem de programação, foi proposto o seguinte exercício de lógica:
O usuário deve entrar com a quantidade de linhas e colunas e com estes dados, desenhar um retângulo que a borda é o caracter 'O' e o seu interior é preenchido com 'X'.
Por exemplo, se a entrada fosse 3 linhas e 5 colunas, teríamos:
OXXXO
OOOOO
Assim, tive a ideia de fazer um programa em C que fizesse a estrutura de uma tabela HTML pedindo para o usuário a quantidade de linhas e colunas.
O ponteiro para arquivos ps cria o arquivo tabelas.html e ao invés de usar printf que imprime na tela, usa-se fprintf para imprimir dentro do arquivo.
São necessários dois laços for sendo que o for externo diz respeito à linha e o mais interno, à coluna.
Uma vez que o ponteiro é aberto para escrita, deve-se instruí-lo a fechá-lo e o comando para este fim é o fclose(nome_do_ponteiro). Neste exemplo, fclose(ps).
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,colunas=1, linhas=1, contador=0;
FILE *ps;
ps = fopen("tabela.html","w");
if (ps == NULL)
{
printf("Erro na abertura do arquivo");
exit(0);
}
printf("Programa de geracao de tabelas\n\n");
printf("Digite o numero de linhas da tabela: ");
scanf("%d",&linhas);
printf("Digite o numero de colunas da tabela: ");
scanf("%d",&colunas);
fprintf(ps,"<html>");
fprintf(ps,"\n");
fprintf(ps," <head>");
fprintf(ps,"\n");
fprintf(ps," <title></title>\n");
fprintf(ps," </head>");
fprintf(ps,"\n\n");
fprintf(ps," <body>\n\n");
fprintf(ps," <table>\n");
for (i=1; i<=linhas;i++)
{
for (j=1; j<=colunas+2; j++)
{
if (j==1)
fprintf(ps," <tr> ");
else if (j==colunas+2)
fprintf(ps," </tr>\n");
else
fprintf(ps," <td></td> ");
contador++;
}
}
fprintf(ps," </table>\n");
fprintf(ps,"\n");
fprintf(ps," </body>\n");
fprintf(ps,"</html>");
fclose(ps);
printf("Arquivo tabelas.html criado com sucesso\n");
return 0;
}
Se estiver usando uma distribuição GNU/Linux, compile com:
$ gcc tabelaHTML.c -o tabelaHTML.out
Em seguida, execute da seguinte forma:
$ ./tabelaHTML.out
Como diz a mensagem, o arquivo tabela.html foi criado com sucesso. Abra este arquivo que está no mesmo diretório que o seu binário e bom proveito!