Ir para conteúdo
Fórum Script Brasil

bonoddr

Membros
  • Total de itens

    181
  • Registro em

  • Última visita

Tudo que bonoddr postou

  1. bonoddr

    Vale A Pena Programar Em C?

    Não vale a pena aprender pra migrar para PHP por exemplo? E no Brasil realmente raramente pedem c++ no mercado de trabalho... Mas se vocês forem pros E.U.A. ou pro Canadá, não vai faltar oportunidade, podem crer...
  2. bonoddr

    Como Aprender

    Pra quem quiser um bom acervo de material de c++, tem no site do meu professor da faculdade: www.uniriotec.br/~angelo.ciarlini/ed Eu abandonei a matéria, vou puxar de novo período que vem (estruturas de dados), mas aproveitem o material Eu acho uma ótima idéia programar por c++ porque dá uma boa base pra quem pensa em mexer com PHP tb
  3. using std::string é uma maneira mais nova de programar, acredito que tenha sido incorporada com o C#. A própria biblioteca string de std se encarrega de atribuir uma string à outra sem precisar percorrer caractere por caractere, como você já deve ter visto em char nome[64] ou char *nome. A função strcpy copia uma string para a outra, mas isso quando não se usa a biblioteca string. No caso do construtor do programa, se o parâmetro nome fosse indicado por char *nomeParam por exemplo, eu atribuiria o nomeParam em nome com o método strcpy. Eu já consegui ver o problema. com o método cin.ignore() depois do meu último cin, parece que o buffer é esvaziando para novas atribuições para o próximo objeto, mas não sei porque isso acontece somente para um objeto do tipo string. Que vocês acham? Comentem ae, valeu!
  4. gets(var) não é recomendável para o padrão C++... no meu 1º post, eu coloquei só um pedaço do meu código, vou colocá-lo abaixo. Se quiser testar kartter, você vai entender melhor qual o problema.. //.h: #ifndef FUNC_H #define FUNC_H #include <string> #include <iostream.h> class func{ private: string nome; int idade; int matricula; int creditos; public: func(int); //sobrecarga de construtor func(string, int, int,int); ~func(); int retornaCreditos(); void exibeFunc(); func operator+(func &s2); }; #endif //.cpp: #include "func.h" using std::cin; using std::cout; using std::endl; using std::string; func::func(string nom, int idad, int matr, int credi) { nome=nom; idade=idad; matricula=matr; creditos=credi; } func::func(int cred) { creditos=cred; } int func::retornaCreditos() { return creditos; } void func::exibeFunc() { cout<<"Nome: "<<nome<<endl; cout<<"Idade: "<<idade<<endl; cout<<"Matricula: "<<matricula<<endl; cout<<"Creditos: "<<creditos<<endl<<endl; } func func::operator+(func &s2) { unsigned int c = creditos + s2.creditos; func t©; //altere para c entre parenteses depois do "t", fórum modifica return t; } void main() { func *temp; temp = new func(0); func *totalCreditos; totalCreditos = new func(0); int creditos; string nome; int idade; int matricula; const int tam=3; //tem q ser const pra não mudar depois func *funcionarios[tam]; func *crfunc[tam]; for (int i=0;i<tam;i++) { cout<<"Entre com os dados do funcionario:"<<endl; cout<<"Nome: "; getline(cin,nome); cout<<"Idade: "; cin>>idade; cout<<"Matricula: "; cin>>matricula; cout<<"Creditos: "; cin>>creditos; cout<<endl<<endl; cin.ignore(); //aqui está a linha editada funcionarios = new func(nome,idade,matricula,creditos); crfunc = new func(creditos); *totalCreditos = (*crfunc) + *temp; temp = totalCreditos; funcionarios->exibeFunc(); } cout<<"Total de creditos: "<<totalCreditos->retornaCreditos()<<endl; } func::~func(){} Na linha do getline (o mais recomendável para codificação c++), no 1º objeto eu consigo inserir o nome, mas a partir do 2º objeto, a string nome é pulada e não é armazenada. E se eu colocar duas vezes esta linha, na instanciação do 1º objeto eu obviamente tenho que entrar com o nome duas vezes, mas nos demais eu entro uma única vez. Estranho né? Sabe porque isso acontece? Propõe alguma solução?
  5. Olá pessoal. Gostaria de saber se alguém já se deparou com o meu problema. Estou instanciando objetos através de uma classe func com 4 parâmetros (string,int,int,int) através de um loop for. abaixo exibirei o código: void main(){ int creditos; string nome; int idade; int matricula; const int tam=3; for (int i=0;i<tam;i++) { cout<<"Entre com os dados do funcionario:"<<endl; cout<<"Nome: "; getline(cin,nome); cout<<"Idade: "; cin>>idade; cout<<"Matricula: "; cin>>matricula; cout<<"Creditos: "; cin>>creditos; cout<<endl; } } uso a função getline da biblioteca string para "gravar" uma string composta (por exemplo: joao pereira). Mas quando instancio no meu programa o 2º objeto, ele simplesmente pula esta linha e vai pra variável "idade". Se eu coloco duas vezes a linha do getline, no 1º objeto devo inserir o nome duas vezes, mas a partir do 2º, insiro normalmente. Alguém sabe como resolvo esse problema? Valeu!
  6. bonoddr

    Lotus 123

    Pronto, me registrei... Alguém pode me responder na moral? No aguardo... :P
×
×
  • Criar Novo...