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!
Nenhum comentário:
Postar um comentário