Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #define COLUMN 40
- #define SIZE 44
- // Função que abre o arquivo e retorna o ponteiro com o endereço do buffer do arquivo
- FILE* open_file(FILE *infile) {
- infile = fopen("./entrada.txt","r+");
- if (infile == NULL) {
- printf("Não foi possível abrir o arquivo!");
- }
- return infile;
- }
- // Função para imprimir a primeira e a última linha da saída
- void print_line() {
- int column = COLUMN;
- int counter = 0;
- for(counter = 0; counter < COLUMN; ++counter) {
- printf("*");
- }
- printf("\n");
- }
- // Função principal
- void main () {
- // Declaração das variáveis estáticas e alguns auxiliares
- char file_char;
- FILE *infile;
- int counter = 0;
- int i = 0, j = 0;
- int aux = 40;
- // Setando o local para pt-BR para que a função fgetc entenda caracteres com acento
- setlocale(LC_ALL, "Portuguese");
- // Abrindo o arquivo
- infile = NULL;
- infile = open_file(infile);
- // Contando quantos caractes tem o arquivo e depois voltando o buffer para a posição inicial do arquivo
- while(fgetc(infile) != EOF) {
- counter++;
- }
- rewind(infile);
- // Imprime a primeira linha da saída
- print_line();
- // Percorrendo todos os caracteres e imprimindo-os, quando o contador chega a 40 colunas pula para a próxima linha
- for(i = 0; i < counter; ++i) {
- printf("* ");
- while(j < 40) {
- file_char = fgetc(infile);
- // Ignorando as quebras linhas para não serem impressas
- if (file_char == '\n') {
- continue;
- }
- if (file_char == EOF) {
- break;
- }
- printf("%c", file_char);
- i++;
- j++;
- }
- j = 0;
- printf(" *\n");
- }
- // Imprime a última linha da saída
- print_line();
- // Termina a execução
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement