Hponto 0 Denunciar post Postado Dezembro 22, 2007 Olá meus amigos, tinha postado uma duvida com relação à função gets(), mas não ´so uma pessoa tentou me ajudar. bem, estou aprendendo c++ e tem uma funcao que necessito usar, a função gats(); mas eu nao concigo utilizar mais que uma chamada a essa funcao. Para contornar essa problema eu utilizo CIM >>, mas nao é funciona quando temos espaços em branco. algum de você's sabem pq eu nao consigo utilizar o gets() mais de uma vez? fico esperando uma ajuda de você's fiquem na paz! ;) programa com gets(); no metodo cadAluno() //cadastro de alunos //22.12.2007 //André Henriques #include<iostream.h> #include<cstdio> #include<iomanip.h> using namespace std; class Aluno{ private: char nome[40], serie, turma; int idade; public: void cadAluno(); void printAluno(); }; void Aluno::cadAluno(){ cout << "cadastro de aluno" << endl << endl; cout << "Nome do aluno: "; gets(nome); //cin >> nome; cout << "Idade: "; cin >> idade; cout << "Serie: "; gets(serie); //cin >> serie; cout << "Turma: "; gets(turma); //cin >> turma; } void Aluno::printAluno(){ cout << endl << setw(40) << nome << " " << setw(5) << idade << " " << setw(5) << serie << " " << setw(5) << turma; } int main(){ int opc, j; int i=0; Aluno alu[100]; //chamndo o metodo para cadastro ate responder que nao quer mais ou o vetor ficar cheio do{ alu[i].cadAluno(); cout << "deseja cadastrar mais? 1/SIM 2/NAO "; cin >> opc; i++; }while(i<100 && opc == 1); //mostra uma unica vez essa caberçalho cout << "Relatorio dos alunos cadastredos" << endl << endl; cout << "Nome Idade Serie Turma"; //faz chamada ao metodo que imprime todos os alunos cadastrados for(j=0; j<i; j++) alu[j].printAluno(); cout << endl << endl; system("PAUSE"); return(0); } Programa com cim >> nome_da_matriz no metodo cadAluno() //cadastro de alunos //22.12.2007 //André Henriques #include<iostream.h> #include<cstdio> #include<iomanip.h> using namespace std; class Aluno{ private: char nome[40], serie, turma; int idade; public: void cadAluno(); void printAluno(); }; void Aluno::cadAluno(){ cout << "cadastro de aluno" << endl << endl; cout << "Nome do aluno: "; cin >> nome; cout << "Idade: "; cin >> idade; cout << "Serie: "; cin >> serie; cout << "Turma: "; cin >> turma; } void Aluno::printAluno(){ cout << endl << setw(40) << nome << " " << setw(5) << idade << " " << setw(5) << serie << " " << setw(5) << turma; } int main(){ int opc, j; int i=0; Aluno alu[100]; //chamndo o metodo para cadastro ate responder que nao quer mais ou o vetor ficar cheio do{ alu[i].cadAluno(); cout << "deseja cadastrar mais? 1/SIM 2/NAO "; cin >> opc; i++; }while(i<100 && opc == 1); //mostra uma unica vez essa caberçalho cout << "Relatorio dos alunos cadastredos" << endl << endl; cout << "Nome Idade Serie Turma"; //faz chamada ao metodo que imprime todos os alunos cadastrados for(j=0; j<i; j++) alu[j].printAluno(); cout << endl << endl; system("PAUSE"); return(0); } Compartilhar este post Link para o post Compartilhar em outros sites
Hponto 0 Denunciar post Postado Dezembro 22, 2007 Valeu pessoal, eu jah solucionei a bronca... ;) Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Dezembro 23, 2007 Se puder colocar a solução agradecemos. http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites
Hponto 0 Denunciar post Postado Dezembro 24, 2007 Olá pessoal, eu nao estava limpando do o "buffer", como na ling. "C". no c++ a biblioteca utilizada é a "cstdio" o comando é o mesmo: fflush(stdin). antes de cada chamada a gets(); o método cadAluno segue logo abaixo: void Aluno::cadAluno(){ cout << "cadastro de aluno" << endl << endl; cout << "Nome do aluno: "; fflush(stdin); gets(nome); cout << "Idade: "; cin >> idade; cout << "Serie: "; fflush(stdin); gets(serie); cout << "Turma: "; fflush(stdin); gets(turma); } abracao http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 24, 2007 Obrigado por compartilhar como foi resolvido seu problema :D Compartilhar este post Link para o post Compartilhar em outros sites