Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cyberlacs

Exercício formatador de arquivos

Recommended Posts

Formatador de Texto - Suponha um arquivo texto que possua algumas marcações específicas descorrentes de ações do usuário:

 

1 - Apaga caracter: #

2- Apaga linha: \

3 - Salta Linha: @

4 - Cada linha tem no máximo 70 caracteres.

 

Estou tentando resolver este problema, mas não estou conseguindo, favor se alguém puder me ajudar, agradeço.

 

Fico no aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
[Estou tentando resolver este problema, mas não estou conseguindo, favor se alguém puder me ajudar, agradeço.

 

Fico no aguardo

 

Não entregamos trabalhos prontos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

_ISIS_ tentei fazer aqui mas não sei o que esta acontecendo será que agora vc pode me ajudar a resolver este problema ?

 

Veja o código que fiz

 

ARQUIVO CPP

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include <windows.h>
#include"pilha_char.h"

void DesvertimanentoDeFrase(TpPilha p, TpPilha aux)
{
	while(!Vazia(p.topo))
	{
		Insere(aux, Retira(p));
	}
	
	if(!Vazia(aux.topo))
	{
		Exibe1(aux);
		
		Inicializa(aux);
		Inicializa(p);
	}
}

void jogaNaPilha(FILE *arq, TpPilha p)
{
	arq = fopen("arquivo.txt", "r");
	
	TpPilha aux;
	Inicializa(aux);
	
	char c;
	
	while((c = fgetc(arq)) != EOF)
	{
		if(!Cheia(p.topo))
		{
			if(c == '#')
			{
				Retira(p);
			}
			else if(c == '\\')
			{
				Inicializa(p);
			}
			else if(c == '@')
			{	
				DesvertimanentoDeFrase(p, aux);
			}
			else
			{
				Insere(p, c);
			}
		}
		else
		{
			DesvertimanentoDeFrase(p, aux);
		}

	}
	
}

int main()
{
	FILE *arq;
	TpPilha p;
	
	Inicializa(p);
	
	jogaNaPilha(arq, p);
	
	getch();
}

 

ARQUIVO H

 

#define MAXPILHA 70

struct TpPilha
{
    int topo;
    char pilha[MAXPILHA];
};

void Inicializa(TpPilha &p)
{
    p.topo = -1;
}

char ElementoTopo(TpPilha p)
{
    return p.pilha[p.topo];
}

int Vazia(int t)
{
    if(t == -1)
        return 1;
    else
        return 0;
}

int Cheia(int t)
{
    if(t == MAXPILHA-1)
        return 1;
    else
        return 0;
}

void Insere(TpPilha &p, char elem)
{
    p.pilha[++p.topo] = elem;
}

char Retira(TpPilha &p)
{
    return p.pilha[p.topo--];
}

void Exibe(TpPilha p)
{
    while(!Vazia(p.topo))
        printf("\n%c", Retira(p));
}

void Exibe1(TpPilha &p)
{
    while(!Vazia(p.topo))
        printf("%c ", Retira(p));
}

 

FICO NO AGUARDO

 

OBRIGADO

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.