Ir ao conteúdo
  • Cadastre-se

Tipo de dado para alocar um número numa lse


Posts recomendados

1 hora atrás, Gabriel_Moro disse:

poste seu código para podermos visualizar o que esta ocorrendo...

Ok jogador, ele aqui embaixo 

 

#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;

struct agenda{
	long telefone;
	char nome[100];
	struct agenda *prox;
}*prim,*ult,*aux;

void inclusao(char n[100], long tel);
void listagem();
void exclusao(long tel);
void procurar(long tel);
void contar();

main(){
	int op, resp;
	char n[100];
	long tel;
	
	do{
	
	cout<<"<<<MENU>>"<<endl;
	cout<<"[1] Incluir "<<endl; //Inclui um novo telefone na agenda;
	cout<<"[2] Listar "<<endl; //Lista todos os telefones da agenda;
	cout<<"[3] Excluir "<<endl; // Exclui o nome e telefone da agenda;
	cout<<"[4] Buscar "<<endl; //Busca o nome e telefone da agenda;
	cout<<"[5] Contar "<<endl;// Conta o n° de telefones cadastrados;
	cout<<"[6] Sair "<<endl; //Opção para sair do menu.
	cin>>op;
	if(op==1){
		cout<<" CADASTRO DE NOVOS TELEFONES "<<endl;
		
		cout<<"Informe o telefone: ";
		cin>>tel;
		fflush(stdin);
		
		cout<<"Informe o nome: ";
		fgets(n,100,stdin);
		cout<<endl;
		
		inclusao(n, tel);
	}else if(op==2){
		listagem();
	}else if(op==3){
		cout<<"Informe o telefone para remover da agenda: ";
		cin>>tel;
		exclusao(tel);
	}else if(op==4){
		cout<<"Informe o telefone para busca: ";
		cin>>tel;
		procurar(tel);
	}else if(op==5)
		contar();
	cout<<"Deseja Voltar ao Menu? [1]-SIM|[0]-NAO ";
	cin>>resp;
	if(resp==0)
		break;
	}while(op!=6);
}

//Funcao de Inclusao
void inclusao(char n[100], long tel){
	aux = (struct agenda *)malloc(sizeof(struct agenda));
	if(prim==NULL)
		prim=aux;
	else
		ult->prox=aux;
	ult=aux;
	strcpy(ult->nome,n);
	ult->telefone=tel;
	ult->prox=NULL;
	cout<<">-------------------<"<<endl;
	cout<<aux->nome;
	cout<<"foi cadastrado com sucesso! \n";
	cout<<">-------------------<"<<endl;
}

void listagem(){
	aux=prim;
	if(prim!=NULL){
		cout<<">-------------------<"<<endl;
		cout<<"Nomes e Telefones "<<endl;
		cout<<"Nome: "<<prim->nome<<endl;
		cout<<"Telefone: "<<prim->telefone<<endl;
		cout<<">-------------------<"<<endl;
		aux=prim->prox;
		while(aux!=NULL){
		cout<<">-------------------<"<<endl;
		cout<<"Nome: "<<aux->nome<<endl;
		cout<<"Telefone: "<<aux->telefone<<endl;
		cout<<">-------------------<"<<endl;
		aux=aux->prox;
		}
	}else
		cout<<"Agenda Vazia! "<<endl;
}

void exclusao(long tel){
	
	struct agenda *aux2;
	int achei = 0; 
	aux = prim; 
	
	while(aux!= NULL && achei==0) 
	{
		if(aux->telefone == tel) 
		{
			if(aux == prim) 
			{
				if(prim == ult)
				{
					prim = ult = NULL; 
					aux2 = aux;
				}
				else 
				{
					prim= prim->prox; 
					aux2 = aux;
				}
			}
			else if(aux == ult)
			{
				ult = aux2; 
				ult->prox=NULL;                                                                                  
			}
			else
			{
				aux2->prox = aux->prox;
				achei = 1;
				free(aux);
			}
		}
		else 
		{
			aux2 = aux;
			aux = aux->prox;
		}
	}
	if(achei==0)
	{
		cout <<"Telefone nao foi encontrado\n\n\n";	
    }
    else
    {
    	cout <<"Telefone excluido! com sucesso! \n\n"<<endl;
    }    	
}


void procurar(long tel){
	int achei=0;
	aux=prim;
	while(achei==0 && aux!=NULL){
		if(aux->telefone==tel){
			cout<<">-------------------<"<<endl;
			cout<<"Nome: "<<aux->nome<<endl;
			cout<<"Telefone: "<<aux->telefone<<endl;
			cout<<">-------------------<"<<endl;
			achei=1;
			
		}else
			aux=aux->prox;
	}
	if(achei==0){
		cout<<"Nome e telefone nao encontrados! "<<endl;
	}
}

void contar()
{
	int c=0;
	aux = prim;
	while(aux!= NULL)
	{
		c += 1;
		aux = aux->prox;
	}
	cout <<"Numero de telefones cadastrados: "<<c<<"\n\n\n";
	
}

 

Link para o comentário
Compartilhar em outros sites

long int permite somente 10 numeros:
long int:
Ocupa 32bits
Especificador: %li
vai desde -2.147.483.648 a +2.147.483.647
10 digitos

 

Ta explicado >_<

 

você pode buscar outro tipo como long long, porém, se quiser um conselho, números de telefone se costuma guardar em strings pois é melhor para processar.

Link para o comentário
Compartilhar em outros sites

31 minutos atrás, vangodp disse:

long int permite somente 10 numeros:
long int:
Ocupa 32bits
Especificador: %li
vai desde -2.147.483.648 a +2.147.483.647
10 digitos

 

Ta explicado >_<

 

você pode buscar outro tipo como long long, porém, se quiser um conselho, números de telefone se costuma guardar em strings pois é melhor para processar.

Ok man, eu troquei kkk, me tira outra dúvida;

 

Como eu faço pra implementar as funções

escrever e ler files

 

eu escrevi assim 

mas não sei implementar junto a essa minha estrutura, tu podes fazer pra mim? ajudaria muito

FILE *file;
file = fopen("teste.txt", "w");	
fprintf(file,"Testando texto");
fclose(file);	

 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, vangodp disse:

Essa é a forma de faze-lo em C. Em c++ se usa streams.
 

Não é permitido fazer trabalhos para o pessoal(regra do fórum). Podemos ajudar em duvidas pontuais. Desculpe.:oops:

:tw_cold_sweat:

tentei fazer assim, mas não funciona

void salvar(){
    
aux=prim;
if(aux!=NULL){
    FILE *file;
    file = fopen("teste.txt", "w");    
    fprintf(file,"Texto de teste");
    fclose(file);
}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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!