Pesquisar na Comunidade
Mostrando resultados para as tags ''c++''.
Encontrado 23 registros
-
Strcat Function In C++ I'm new to C and C++ programming, can anyone give me a hint on what I'm doing wrong here. I'm trying to write to concat function that takes to pointers to chars and concatenates the second to the first. The code does do that, but the problem is that it adds a bunch of junk at the end. For instance, when passing the arguments - "green" and "blue", the output will be "greenblue" plus a bunch of random characters. I also wrote the strlen function that strcat uses, which I will provide below it for reference. I'm using the online compiler at InterviewBit The exact instructions and specification is this: int main(int argc, char** argv) { const int MAX = 100; char s1[MAX]; char s2[MAX]; cout << "Enter your first string up to 99 characters. "; cin.getline(s1, sizeof(s1)); int size_s1 = strlen(s1); cout << "Length of first string is " << size_s1 << "\n"; cout << "Enter your second string up to 99 characters. "; cin.getline(s2, sizeof(s2)); int size_s2 = strlen(s2); cout << "Length of second string is " << size_s2 << "\n"; cout << " Now the first string will be concatenated with the second string "; char* a = strcat(s1,s2); for(int i = 0; i<MAX; i++) cout <<a; // system("pause"); return 0; } //strcat function to contatenate two strings char* strcat(char *__s1, const char *__s2) { int indexOfs1 = strlen(__s1); int s2L = strlen(__s2); cout <<s2L << "\n"; int indexOfs2 = 0; do{ __s1[indexOfs1] = __s2[indexOfs2]; indexOfs1++; indexOfs2++; }while(indexOfs2 < s2L); return __s1; } //Returns length of char array size_t strlen(const char *__s) { int count = 0; int i; for (i = 0; __s != '\0'; i++) count++; return (count) / sizeof(__s[0]); }
-
como faço para achar o maior valor depois de inserir os valores?
roberson abalaid postou uma questão Perguntas e respostas rápidas
#include <stdio.h> #include <stdlib.h> int arr[3][5]; int main(){ printf("Favor inserir os dados...\n"); for(int i = 0; i < 3; i++){ for(int j = 0; j < 5; j++){ scanf("%d", &arr[j]); } } printf("os valores inseridos foram...\n"); for(int i = 0; i < 3; i++){ for(int j = 0; j < 5; j++){ printf(" %d ", arr[j]); } printf("\n"); } return 0; } -
Pessoal me ajudem não encontrei muita coisa sobre isso.. o exercício é o seguinte, tenho que desenvolver um programa em linguagem C, Java ou C# para a busca em texto utilizando o método SHIFT-AND. DESCRIÇÃO: O programa deverá ler um ARQUIVO TEXTO contendo o texto objeto de pesquisa com todas as letras escritas em minúsculas (texto que será pesquisado), deverá ler do teclado o texto à pesquisar (Padrão) e realizar a busca do Padrão no Texto utilizando o método SHIFT-AND. SAÍDA: O programa deverá pesquisar pelo PADRÃO no TEXTO, utilizando o método SHIFT-AND e converter em MAIÚSCULAS todas as ocorrências do PADRÃO no TEXTO, ou exibir na tela uma mensagem informando que o PADRÃO não foi encontrado no TEXTO, se este for o caso. Alguém pode me ajudar ?
-
Bem pessoal, eu estou querendo adicionar pontos em um valor inteiro, para explicar melhor vamos ao código: char text[30]; int value = 10000000000; sprintf(text, "O valor ganho foi de: %d", value); cis->print_message(text); Eu queria saber uma forma de retornar o valor com pontos, ficando da seguinte forma: 10.000.000.000 Alguém tem alguma ideia ?
-
Algoritimo para contar repeticoes de valores em vetores
Diego Casarin postou um tópico no fórum C/C++
Estou com dificuldade em fazer um algoritimo onde segue a seguinte logica: Exemplo: para o vetor digitado V1 = (0,0,0,1,1,0,1,0,1,1,0) obtém-se V2 = (3,2,1,1,1,2,1) enunciado: Escreva um programa que realize a compactação de um vetor V1 de N algarismos 0 e 1 (N <= 40) digitado pelo usuário (onde cada algarismo ocupa uma posição do vetor), de forma que o vetor resultante V2 de N elementos (N <= 40) possua menos elementos do que o vetor original. A regra de compactação é a seguinte: 1. o primeiro elemento do vetor V2 é o número de algarismos zero que o vetor V1 contém, a partir do seu início, até o primeiro algarismo um; 2. o próximo elemento do vetor V2 é o número de algarismos um que o vetor V1 contém, a partir do último zero encontrado, até o próximo algarismo zero; 3. o próximo elemento do vetor V2 é o número de algarismos zero que o vetor V1 contém, a partir do último um encontrado, até o próximo algarismo um; 4. repete-se os passos b e c até o final do vetor V1. como consigo fazer a contagem de qntos zeros tem-se ate o primeiro 1? e assim por adiate -
Estou fazendo um programa, mas estou trancado em uma parte. O ojetivo desta parte do programa é ver se as letras em que o usuário digita, são iguais as permitidas. Procurei algumas maneiras de fazer isso, mas só achei essa. O problema deste programa é que quando ele vai analisar a cadeia t, ele sempre mostra que a cadeia é invalida, mesmo estando dentro do exigido, abrindo melhor a cadeia t, descobri que o programa sempre diz que a 18º letra é invalida, mas não consegui descobrir o motivo, mesmo ponto letras validas, a 18º ele mostra que é errada. A parte do programa é essa: #include <stdio.h> #include <stdlib.h> #include <string.h> main() { int M, N, i, j, a, b; char p[M], t[N]; int letrasT, letraT, letrasP, letraP; M=5; N=25; do { do { i=0; letraP=0; letrasP=0; printf ("\n Digite a cadeia p: "); scanf ("%s", p); if (M!=strlen(p)) printf ("\n\n !!!TAMANHO DE p INVALIDO!!!\n"); for (i=0; i<M; i++) if ((p!='A') && (p!='C') && (p!='G') && (p!='T')) letrasP=1; else letrasP=0; for (i=0; i<M; i++) if (letrasP==1) letraP=1; if (letraP==1) printf ("\n\n !!!CADEIA DE p INVALIDA!!!\n"); }while (letraP==1); }while (M<strlen(p)); do { do { i=0; letraT=0; letrasT=0; printf ("\n Digite a cadeia t: "); scanf ("%s", t); if (N!=strlen(t)) printf ("\n\n !!!TAMANHO DE t INVALIDO!!!\n"); for (i=0; i<N; i++) if ((t!='A') && (t!='C') && (t!='G') && (t!='T')) letrasT=1; else letrasT=0; for (i=0; i<N; i++) if (letrasT==1) printf ("*%i", letrasT); letraT=1; if (letraT==1) printf ("\n\n !!!CADEIA DE t INVALIDA!!!\n"); }while (letraT==1); }while (N<strlen(t)); printf ("\n%s", p); printf ("\n%s", t); }
-
Boa noite. Preciso de ajuda neste algoritmo em c++ da matéria de estrutura de dados. Não sei por onde começar. Obrigado! Fazer um programa que utiliza um vetor X de 10 posições e lê 20 valores inteiros situados no intervalo [1,99]. Utilize, ainda, duas variáveis, T1 e T2 inicializadas, respectivamente, com 0 e 11, de tal forma que, no vetor X, tenha-se duas pilhas de bases opostas. Para cada valor lido: se for par e maior do que 50, inseri-lo na pilha 1; se for par e menor ou igual a 50, então retirar o elemento do topo da pilha 1 e escrevê-lo; se for ímpar e maior do que 50, inseri-lo na pilha 2; se o valor lido for ímpar e menor ou igual a 50, então retirar o valor do topo da pilha 2 e escrevê-lo; se ocorrer uma situação de UNDERFLOW, escreva uma mensagem e ignore o valor lido passando a ler o novo valor; se ocorrer OVERFLOW ou se já tiverem sido lidos 20 valores, então escrever o conteúdo das duas pilhas e terminar o programa;
-
Boa tarde! Foi passado na faculdade 3 exercícios envolvendo recursividade. Um eu consegui fazer, que era o fibonacci. Porém fetuccine e ricci eu não consegui. Será que poderiam ajudar? Sei nem por onde começar. Valeu!! Ricci : Mesmo esquema da série de Fibonacci, porém os dois primeiros números são fornecidos pelo usuário. Fetuccine: Os 2 primeiros valores são informados pelo usuário e o termo desejado também. Se o termo for par, por exemplo: o segundo e quarto termo, então o próximo valor é: atual + anterior. Se o termo for ímpar, exemplo: terceiro termo da sequencia, quinto termo da sequencia, então o valor do próximo termo é: atual - anterior. Obrigado!
-
Os habitantes do planeta Uno possuem um terrível problema de detecção de números com mais de um algarismo, de modo que, para tudo que vão fazer, transformam qualquer valor inteiro em um número de um algarismo, realizando somas sucessivas do número até o mesmo ser reduzido a um algarismo. Por exemplo, o número 999999999991, no planeta Uno, soma-se todos os algarismos, resultando em 9+9+9+9+9+9+9+9+9+9+9+1 = 100. Como o número 100 tem mais de um algarismo, o processo se repete, resultando em 1+0+0 = 1 Uma das grandes dificuldades que os habitantes possuem está em comparar dois números e verificar qual deles é o maior, segundo as regras do planeta. Escreva um programa que, dados dois números inteiros, identifique qual deles é o maior número de um algarismo. Entrada Haverá diversos casos de teste. Cada caso de teste inicia com dois inteiros N e M (0 ≤ N ≤ 10100, 0 ≤ M ≤ 10100), indicando os dois números a serem comparados. O último caso de teste é indicado quando N = M = 0, sendo que este caso não deverá ser processado. Saída Para cada caso de teste, imprima uma linha, contendo um inteiro, indicando 1 se o primeiro número for o maior de um algarismo, 2 se o segundo número for o maior de um algarismo ou 0 se ambos os números possuírem o mesmo valor de um algarismo. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Eu sou iniciante em programação e já refiz varias vezes esse exercício, mas não da certo. Se puderem ajudar, agradeço desde já!
-
Alguém pode me ajudar nessa questão de C++? não estou conseguindo construir o algorítmo corretamente. 5.92) Faça um algoritmo que leia a matrícula, nome, sexo e três notas dos alunos de uma escola e obtenha os seguintes resultados: a) A matrícula da aluna que obteve a maior média. b) A matrícula do aluno que obteve a menor média. c) O percentual de mulheres na turma. d) Quantos alunos foram aprovados, independente do sexo. e) O percentual de alunas aprovadas. Obs.: o flag é uma matrícula igual a 0 (zero).
-
Estou tentando fazer esse exercício de introdução a programação em C++, e estou tendo dificuldades para criar os algoritmos. Alguém poderia me ajudar? Uma agência de turismo quer fazer um levantamento das praias da cidade para um programação turística de verão, sabendo-se que cada praia tem um nome e uma distância (em Km) do hotel. Criar um algoritmo que forneça os seguintes dados: 18 Porcentagem de turistas nas praias próprias do hotel A praia mais adiante Nome e distancia das praias não-próprias com distancia do hotel maior que 10 km. O algoritmo acaba quando se digita @ para nome da praia.
-
Boa noite pessoal, Tenho umas listas de ordenação em C++ para fazer, e em alguns exercícios eu fiquei com uma dúvida imensa. O problema é o seguinte: Tenho que ordenar o vetor em ordem decrescente (até ai tudo bem), mas após isso tenho que imprimir o índice do vetor original. Ou seja, tenho que ordenar e, após isso, imprimir a posição que esse número ocupava ANTES de ser ordenado, e não o valor da posição. EXEMPLO: v[5] = {1, 3, 4, 6, 2} Vetor ordenado = {6, 4, 3, 2, 1} Porém, a saída esperada é: {3, 2, 1, 4, 0}, que são os índices do vetor original. Pesquisando pela internet, vi algumas resoluções que usavam struct, mas não posso usar nada do tipo. Apenas vetores e algoritmos de ordenação. Alguém pode me dar uma luz? Grato!
-
#include <iostream> using namespace std; int main(){ int vet [10], primo[10],i, x,aux=0; for (x=0;x<10;x++){ cout <<"Preencha o vetor: "; cin >> vet[x]; } for (x=0;x<10;x++){ for (x=1;x<=vet[x];x++){ if (vet[x] % x == 0){ aux++; i = aux; primo[x] = i; } } } for (x=0;x<10;x++){ cout <<primo[x]<<endl; } for (x=0;x<10;x++){ if (primo[x] <= 2){ cout <<"E PRIMO"<<endl; } else { cout <<"NAO E PRIMO"<<endl; } } }
-
Pessoal, vocês podem me ajudar a corrigir o bug? "Faça um programa em C++ que leia números do teclado e os armazene em um vetor alocado dinamicamente. O usuário irá digitar uma sequência de números, sem limite de quantidade. Os números serão digitados um a um e, sendo que caso ele deseje encerrar a entrada de dados, ele irá digitar o número ZERO. Os dados devem ser armazenados na memoria deste modo." Eu fiz esse código, mas ele buga quando digito 0: #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { int *vet; int j, n = 0; vet = (int *)malloc(1 * sizeof(int)); while (vet != 0) { printf("\nDigite um número: "); scanf("%i",&vet); n++; } for (j = 1; j < n; j++) { printf("%i ",vet[j]); } printf("\n"); return 0; free(vet); }
-
Oi, Eu fiz um programa que entra com senha e login depois que digitou login e senha corretos ele vai somar dois números que digitar, queria que depois de mostrar o resultado, ele fise uma pergunta deseja sair sim ou não ?, se sim volta pra tela de login, senão continua fazendo a soma. alguém poderia me ajudar.Segue abaixo o programa. #include <conio.h> #include <string> #include <conio.c> #define user"CJR" #define pass"7609" using namespace std; int main(int argc, char *argv[]) { int a, x, c; string usuario, senha; system("color F0"); printf("\t\t\t Login"); printf("\n\t\t\t-----------\n\n"); printf("\n\tUsuario: "); getline(cin, usuario); printf("\n\tSenha: "); getline(cin, senha); if (usuario == user && senha == pass){ system("cls"); printf("Digite o valor de a: "); scanf("%d", &a); printf("Digite o valor de x: "); scanf("%d", &x); c = a + b; printf("Resultado: %d\n", c); } else { printf("\n\tUsuario e Senha estao incorretos"); } cin.get(); cin.get (); return 0; }
-
#include<iostream> using namespace std; int BuscaBin (int lista[], int baixo, int alto, int chave) { int central; int valorcentral; while (baixo <= alto) { central = (baixo + alto)/2; valorcentral = lista[central]; if (chave == valorcentral) return central; else if (chave < valorcentral) alto = central -1; else baixo = central + 1; } } int main() { int a[10]; int chave, pos; cout << "Introduza uma lista de 10 inteiros:"; for (pos = 0; pos < 10; pos++) cin >> a[pos]; cout << "Introduza chave a buscar:"; cin >> chave; pos = 0; while ((pos = BuscaBin(a, 0, 9, chave))!= -1) { pos++; } cout << chave << " está na lista " << " vezes na lista " << endl; } O objetivo é inserir uma lista e resultar numa busca binária e ele retornar a chave, não posso alterar a função BuscaBin
-
Sua tarefa é implementar uma árvore de busca binária que armazene strings. A ordem de inserção deverá ser alfabética crescente, ou seja, se o valor do elemento da raiz for “iguana”, então a palavra “beterraba” deverá ser inserida na subárvore da esquerda, enquanto a palavra “pagode” deverá ser inserida na subárvore da direita. Devem ser declaradas a struct e implementadas as seguintes funções da árvore: • criar(): inicialização da árvore. • buscar(): busca de um elemento na árvore. • inserir(): inserção de um elemento na árvore. • remover(): remove um elemento da lista. • estaVazia(): retorna um booleano indicando se a árvore está vazia. • ehEstritamenteBinaria(): retorna um booleano indicando se a árvore é estritamente binária. • ehQuaseCompleta(): retorna um booleano indicando se a árvore é quase completa. • ehCompletaCheia(): retorna um booleano indicando se a árvore é completa (cheia). • preOrdem(): visita e imprime os elementos da árvore em PRÉ-ORDEM (“RED”). • emOrdem(): visita e imprime os elementos da árvore EM-ORDEM (“ERD”). • posOrdem(): visita e imprime os elementos da árvore em PÓS-ORDEM (“EDR”). Após implementar a estrutura de dados, escreva um programa em C/C++ que permita ao usuário executar as funções acima
-
Fiz um programa que calcula o reajuste de salário de 5 funcionários armazenando seus nomes e salários em vetores, porém o salário já reajustado aparece com o mesmo valor do salário original. /* Armazenar o nome e o salário de 5 funcionários. Após o cadastro destas informações, deverá ser digitado o índice de reajuste salarial para todos os funcionários. O programa deverá calcular o novo salário e exibir todos os dados na tela */ #include <iostream> #include <locale.h> #include <string> #include <string> #include <stdlib.h> #include <cstdlib> using namespace std; int main() { setlocale(0, "Portuguese"); system("color 0a"); system("MODE CON COLS=150 LINES=40"); string nomefunc[5]; double slfunc[5], slnovo[5]; int reaj, i; cout << "\n\tArmazenar o nome e o salário de 5 funcionários. Após o cadastro destas informações, deverá ser digitado o índice de reajuste salarial para todos os funcionários. O programa deverá calcular o novo salário e exibir todos os dados na tela"; cout << "\n\n\tDigite a porcentagem do reajuste (sem o sinal %): "; cin >> reaj; for (i=0; i<5; i++){ cout << "\n\n\tDigite o nome do funcionário: "; cin >> nomefunc[i]; cout << "\n\n\tDigite o salário de " << nomefunc[i] <<": "; cin >> slfunc[i]; slnovo[i] = slfunc[i] - slfunc[i] * (reaj / 100); } cout << "\n\n\tO salário do primeiro funcionário (" << nomefunc[0] << ") era de R$" << slfunc[0] << " e passará a ser de R$" << slnovo[0] << " com o reajuste de " << reaj << "%."; cout << "\n\n\tO salário do segundo funcionário (" << nomefunc[1] << ") era de R$" << slfunc[1] << " e passará a ser de R$" << slnovo[1] << " com o reajuste de " << reaj << "%."; cout << "\n\n\tO salário do primeiro funcionário (" << nomefunc[2] << ") era de R$" << slfunc[2] << " e passará a ser de R$" << slnovo[2] << " com o reajuste de " << reaj << "%."; cout << "\n\n\tO salário do primeiro funcionário (" << nomefunc[3] << ") era de R$" << slfunc[3] << " e passará a ser de R$" << slnovo[3] << " com o reajuste de " << reaj << "%."; cout << "\n\n\tO salário do primeiro funcionário (" << nomefunc[4] << ") era de R$" << slfunc[4] << " e passará a ser de R$" << slnovo[4] << " com o reajuste de " << reaj << "%."; system ("PAUSE>NULL"); }
-
Ajuda para implementar Tabela Hash em C/C++ (vetor de listas encadeadas)
WillChapuis postou um tópico no fórum C/C++
Bom, eu preciso fazer uma tabela hash de 100 elementos como mostrado no esquema: Essa tabela (vetor) de 100 elementos … cada um deles possuem números chamados de “chaves” e um ponteiro apontando para o a próxima chave (lista encadeada).A regra que deve ser seguida para as inserções no vetor, é que o ultimo digito da chave é seu “endereço”, e esse endereço indica qual posição do vetor eu devo inserir. Ex: Inserir a chave 487 (chave) 487 % (tamanho do vetor) 100 = 7 Então devo inserir a chave 487 na posição 87 do vetor: v[87] = 487 Porém eu estou tendo problemas com os ponteiros para chamar as funções e utiliza-los... Eu sei fazer uma lista encadeada, porém não sei como fazer um vetor disso...Esse é um pouco do que eu fiz quando era só uma lista encadeada... struct dados { int chave; struct dados *prox; }; typedef struct dados Lista; void Cria(Lista **L) { *L = NULL; } void Inserir(Lista **L, int v) { Lista *p, *q; p = (Lista*)calloc(1, sizeof(Lista)); p->chave = v; p->prox = NULL; if(*L == NULL) { *L = p; } else { q = *L; while(q->prox != NULL) { q = q->prox; }; q->prox = p; } } Eu conversei com um amigo e ele me indicou fazer a declaração da struct dessa forma: struct dados { int chave; struct dados * prox; } tabela[100]; typedef struct dados Elemento; Entretanto eu não tenho ideia de como eu vou chamar isso na função... Porque o vetor vai estar na main()... e eu só vou chamar a função "Inserir" com o vetor e o valor para inserir Como eu chamaria essa função ? Inserir(???,int chave) Se alguém puder me dar uma luz, eu agradeço demais ... Preciso fazer varias coisas alem da inserção, mas não consigo porque eu não sei de que forma eu vou chamar esse vetor/variável de controle das listas -
concatenação de numeros inteiros em matrizes bidimensional em C++
Josues postou um tópico no fórum Algoritmos & Outras Tecnologias
Bom dia! Gostaria de uma auxilio sobre concatenação de números inteiros em uma matriz bidimensional, estou fazendo um trabalho da faculdade e me deparei com essa barreira. No programa deve conter duas matrizes de entrada e uma de matriz que vai receber os valores concatenados das duas. A matriz é 1 por 2 L = 1 e C = 2 no resultado que será mostrado é ex: matriz 1 [0][0]: 1 matriz 1 [0][1]: 1 Matriz 2 [0][0]: 1 Matriz 2 [0][1]: 0 Matriz Resultado: 11 10 11 10 tem como fazer essa com catenação com inteiros? estou no segundo semestre da faculdade é e uma atividade avaliativa..-
- concatenação
- matriz
-
(e mais 2 )
Tags:
-
Estou fazendo um trabalho para a faculdade criando uma estrutura de cadastro de uma corrida. Já consegui fazer grande parte mas não consigo resolver esses pontos. Alguém saberia resolver?
-
Criar um algoritmo que lê um arquivo txt com um vetor e apresenta quais numeros e quantas vezes ele repete Estou fazendo uma lista de exercicios e um dois exercicios pede isso, sou iniciante na programação então não tenho muita experiência, não estou conseguindo fazer esse algoritmo, se alguem puder me ajudar fico grato.
-
Como que eu faço pra imprimir todos os elmentos da lista abaixo #include <iostream> #include<locale.h> #include<stdlib.h> #include<stdio.h> #include <ctype.h> #include<string> #include<limits> #include <string> using namespace std; template <class tipo> class No { public: tipo info; No <tipo> *prox; No(tipo elem, tipo nome, tipo descricao, No <tipo> *p); }; template <class tipo> class Lista{ private: No <tipo> *inicio; public: Lista(); ~Lista(); void insert(tipo elem,tipo nome, tipo descricao); int remove(tipo elem,tipo nome, tipo descricao); int empty(); }; template <class tipo> No <tipo> :: No(tipo elem,tipo nome, tipo descricao, No <tipo> *p){ info=elem; info= nome; info=descricao; prox=p; } template <class tipo> Lista <tipo> :: Lista() {inicio=NULL;} template <class tipo> int Lista <tipo> :: empty(){ if(!inicio) return 1; else return 0; }; template <class tipo> void Lista <tipo> :: insert(tipo elem,tipo nome, tipo descricao){ No <tipo> *ant=NULL, *atual,*novo; novo = new No <tipo>(elem,nome,descricao, NULL); if(empty()) inicio=novo; else{ atual=inicio; while(atual!=NULL && atual->info <= elem){ ant=atual; atual=atual->prox; } if(ant==NULL){//inicio novo->prox=inicio; inicio=novo; } else{//meio ou fim ant->prox=novo; novo->prox=atual; } } } template <class tipo> Lista <tipo> :: ~Lista(){ No <tipo> *p; while(inicio!=NULL){ p=inicio; inicio=inicio->prox; delete p; } } int Menu() { int opcao,idEspecialidade; char op='2'; int retorno; string nomeEspecialidade, descricaoEspecialidade; setlocale(LC_ALL, "Portuguese"); cout<<"-----------------------------"<<endl; cout<<"- CLÍNICA MOREHEALTH -"<<endl; cout<<"-----------------------------"<<endl; cout<<"[1]-CADASTRAR ESPECIALIDADE"<<endl; cout<<"[2]-SOLICITAR CONSULTA"<<endl; cout<<"[3]-LISTAR CONSULTAS"<<endl; cout<<"[4]-SAIR"<<endl; cout<<"-------------------------------"<<endl; cout<<"INSIRA A OPÇÃO DESEJADA (1 A 4): "; cin>> opcao; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); do { switch(opcao) { case 1: { cout<<"Informe id Especialidade :"; cin>>idEspecialidade; cin.ignore(); cout<<"Informe Nome Especialidade: "; getline(cin,nomeEspecialidade); cout<<"Informe descrição Especialidade: "; getline(cin,descricaoEspecialidade); system("pause"); system("cls"); return Menu(); break; } case 2: { system("pause"); system("cls"); return Menu(); return Menu(); break; } case 3: { system("cls"); cout<<"nenhuma lista "<<"\n"; system("pause"); system("cls"); return Menu(); break; } case 4: { system("cls"); cout<<endl; cout<<":::::::::::::::::::::"<<endl; cout<<"*SISTEMA FINALIZADO*"<<endl; cout<<":::::::::::::::::::::"<<endl; exit(0); break; } } cout<<endl; cout<<"****opção inválida,tente novamente!***"<<endl; cout<<endl; cout<<"INSIRA A OPÇÃO DESEJADA (1 A 4): "; cin>> opcao; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } while(opcao>0 || opcao<5); system("cls"); } //programa principal int main() { Menu( ); Lista <string> L; return 0; }