Ir ao conteúdo
  • Cadastre-se

rodrigorock

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por rodrigorock

  1. 12 horas atrás, 1freakday disse:

    Boa noite, não entendi muito bem sua Struct de pilha da musicas,  não seria usado char Musicas[N] em vez de :

    int Musicas[N];

    Pois você ta querendo usar int e o int é usado apenas para inteiros(numeros) e a função ImprimeMusicas(); esta imprimindo esses numeros. 

    Troque esse int Musicas[N], por vetor de string, e armazene os nomes das musicas nele, simples.

     

    Bom dia, Tinha razão, ali estava errado mesmo e nem reparei... mas mesmo assim continua saindo números ou letras. 

    Sabe me dizer o que mais posso fazer? 
    Grato pela atenção.

  2. Primeiramente, boa noite a todos.

    Procurei sobre minha dúvida aqui e não encontrei um tópico que me ajudasse, então criei este.

     

    Estou com um pqno problema com meu código. É o seguinte:

    - Eu crio uma Pilha;

    - Carrego um arquivo txt no programa;

    - Insiro a linha lida em uma posição da Pilha;

     

    mas na hora de mostrar a Pilha não aparece a frase do arquivo, e sim, números.

    Alguém pode me ajudar nessa?

     

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <string>
    using namespace std;
    
    #define N 10
    
    struct Pilha
    {
    	string Musicas[N]; //Mudado de int Muscias[N] para string Musicas[N] a pedido de @1freakday, mas sem sucesso
    	int x;
    };
    
    Pilha* CriarPilha()
    {
    	Pilha *p = new Pilha;
    	p->x = 0;
    	return p;
    }
    
    void push(Pilha* p, char* list)
    {
    	p->Musicas[p->x] = (char)list;
    	p->x++;
    }
    
    void ImprimeMusicas(Pilha* p)
    {
    	int tamanho = p->x;
    	int cont;
    
    	for (cont = 0; cont < tamanho; cont++)
    		cout << p->Musicas[cont] << endl;
    }
    
    int main()
    {
    	FILE *leitura;
    	char musicas[50];
    	char *aux;
    	int i = 1;
    	
    	Pilha *pMusicas = CriarPilha();
    
    	leitura = fopen("playlist.txt", "rt");
    	if (leitura == NULL)
    	{
    		cout << "Não foi possível abrir sua playlist." << endl;
    		return 1;
    	}
    
    	while (!feof(leitura))
    	{
    		aux = fgets(musicas, 50 ,leitura);
    		if (aux) //mostra na tela o arquivo lido
    			cout << "musica " << i << ": "<< musicas << endl;
    		i++;
    		push(pMusicas, aux);
    	}
    
    	ImprimeMusicas(pMusicas);
    
    	system("pause");
    
    	return 0;
    }

    Notem, no anexo, que quando imprimo o que foi lido (direto da variável musicas), aparece na tela todas as musicas, mas logo abaixo, o que deveria ser a mesma coisa aparece outros valores.

     

    erro.png

    playlist.txt

     

    Desde já, grato pela atenção e ajuda!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!