:angry: OBS: Tirei até a estrutura de repetição de dentro da função para demonstrar.
Quando colo a função dentro do int main () ela funciona normalmente , mas quando chamo ela através de outra função como o Menu() ela buga e pula a primeira entrada do nome da primeiro cidade. O Código tá imcompleto só tem a opção - 0 , só quero mostrar o erro em si. Agradeceria muito se algum de vocês conseguissem me ajudar.
#include <iostream>
#include <cstdlib>
using namespace std;
////////////////////////////////////////////////////
struct Cidade
{
char Nome[11];
};
void AlocarNomes ( Cidade *Nomes )
{
int a = 0;
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
}
///////////////////////////////////////////////////
void Menu ( Cidade *Nomes )
{
cout << endl << " Digite 0 -> Para Adicionar Os Nomes Das 5 Cidades. ";
cout << endl << " Digite 1 -> Para Adicionar As Distancias entre as 5 Cidades. ";
cout << endl << " Digite 2 -> Para Verificar A Distancia Entre Duas Cidades. ";
cout << endl << " Digite 3 -> Para Verificar Quais são As Duas Cidades Mais Proximas. ";
cout << endl << " Digite 4 -> Para Ver A Tabela De Distancias Das Cidades. ";
cout << endl << " Digite 5 -> Para Formular Um Percurso Entre As Cidades. ";
cout << endl << " Digite 6 -> Para Sair. " << endl << endl;
int n;
cin >> n;
switch (n)
{
case 0:
AlocarNomes ( Nomes );
Menu ( Nomes );
break;
default:
system ("cls");
cout << " Opcao Invalida - Por Favor Escolha Novamente " << endl << endl;
Menu ( Nomes );
break;
}
}
////////////////////////////////////////////////////
int main()
{
Cidade *Nomes = new Cidade [5];
int a = 0;
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
cout << " Digite O Nome Da Cidade Numero " << a + 1 << " -> ";
cin.getline ( Nomes[a++].Nome , 11 , '\n');
Menu ( Nomes );
return 0;
}
Pergunta
frankxx
:angry: OBS: Tirei até a estrutura de repetição de dentro da função para demonstrar.
Quando colo a função dentro do int main () ela funciona normalmente , mas quando chamo ela através de outra função como o Menu() ela buga e pula a primeira entrada do nome da primeiro cidade. O Código tá imcompleto só tem a opção - 0 , só quero mostrar o erro em si. Agradeceria muito se algum de vocês conseguissem me ajudar.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.