Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hponto

[Resolvido] Função gets();

Recommended Posts

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

Valeu pessoal, eu jah solucionei a bronca...

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Obrigado por compartilhar como foi resolvido seu problema :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.