CAVC Posted April 2, 2012 Report Share Posted April 2, 2012 Boa tarde! Estou com uma dúvida assim para o grande Eu estou a tentar fazer um programa sobre euromilhoes. Preciso de registar o jogador e isso vai ter : o código (exemplo: 00000001, atribuido automaticamente e por ordem crescente) (suposto ser uma string com 7 caracteres), o seu nome (string com 7 caracteres) e o seu saldo inicial. ISto tudo tem que ir sendo atualizado num ficheiro de texto. Eu tinha pensado fazer uma função para tal mas não estou a conseguir 😛 Alguma ajuda??? Obrigado! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 2, 2012 Report Share Posted April 2, 2012 qual o teu problema exactamente ?? apresentares o código já feito ajuda a perceber qual a tua dúvida ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
CAVC Posted April 2, 2012 Author Report Share Posted April 2, 2012 O problema é mesmo esse. Ainda não há um código feito porque estou mesmo com muitas dúvidas 😛 Eu quero acrescentar jogadores. Eles são identificados por um código, pelo seu nome e pelo o seu saldo. Eu estava numa função do género adicionaJogador. Link to comment Share on other sites More sharing options...
CAVC Posted April 2, 2012 Author Report Share Posted April 2, 2012 string adicionaJogador (char nome, int codigo, double saldo); Estava a pensar fazer uma funçao daquele tipo mas nao sei se posso 😛 Link to comment Share on other sites More sharing options...
seuqram Posted April 2, 2012 Report Share Posted April 2, 2012 hippy ele quer que nos lhe demos sujentoes... olha o que tens a fazer e criar uma variavel com alguns elementos: char jogadores[1000]; depois se eu quizer me registar, meto o meu nome(nao e) vai ter que fazer uma deteçao de um elemento desta variavel que esteja em braco. essa deteçao pode ser assim: int jogadorescontagem=0 while(jogadorescontagem!=1000) { jogadorescontagem++; if(jogadores[jogadorescontagem]=="NULL") { jogadorescontagem=1000; jogadores[jogadorescontagem]="nome do jogador"; } } a logica que eu propunha e mais ou menos isto... mas n precisaria ser com 00000001 ( quer dizer se podesses jogadores[0000001] era o mesmo que jogadores[1]) Link to comment Share on other sites More sharing options...
pikax Posted April 2, 2012 Report Share Posted April 2, 2012 O problema é mesmo esse. Ainda não há um código feito porque estou mesmo com muitas dúvidas 😛 Eu quero acrescentar jogadores. Eles são identificados por um código, pelo seu nome e pelo o seu saldo. Eu estava numa função do género adicionaJogador. Porque que nao te abstrais das coisas, e primeiro crias uma class ou estrutura para cada jogador, com o saldo e isso? #include<iostream> #include<string> struct jogadores { int codigo; char nome[50]; float saldo; }; //ou class cJogadores { public: cJogadores(){} ~cJogadores(){} cJogadores(int codigo,char* nome,float saldo):m_codigo(codigo),m_nome(nome),m_saldo(saldo){} void SetSaldo(); void GetSaldo(); //etc..... private: int m_codigo; string m_nome; float m_saldo; }; //... Assim consegues te abstrair de alguns problemas, depois basta criares um vector para os jogadores, ter o codigo como texto, penso que nao tenha muito nexo porque terias que fazer mais umas coisas para por a funcionar direito... Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
CAVC Posted April 4, 2012 Author Report Share Posted April 4, 2012 Boa tarde!! Pikax a tua ideia é bastante boa mas eu ainda nao posso usar isso classes porque ainda nao dei :S A minha ideia era: void adicionaJogador (string nome, string saldo); { int codigo; if () } o if serve para averiguar se o ficheiro "players.txt" existe ou nao... mas agora aí reside a minha dúvida: como é que faço para saber se um ficheiro existe ou não?? 😛 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 4, 2012 Report Share Posted April 4, 2012 estas a aprender c++ e ainda não deste classes ???? onde andas a aprender a programar ??? se o caso é não usar classes usa estruturas com funções de manipulação IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
CAVC Posted April 4, 2012 Author Report Share Posted April 4, 2012 eu preciso que alguem me ajude com aquela função estou com muitas duvidas realmente. Sei que parece que estou a pedir que me façam o trabalho mas não :S Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 4, 2012 Report Share Posted April 4, 2012 maneira mais directa de saber se um ficheiro existe: if ((fd = fopen(path, "r")) == NULL) { // ou o ficheiro não existe ou não tens permissões para o ler // de qualquer maneira tens um problema para resolver } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
CAVC Posted April 4, 2012 Author Report Share Posted April 4, 2012 Explica-me o fd e o path são tipo variáveis?? :S Obrigado desde já Happy Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 4, 2012 Report Share Posted April 4, 2012 extended version : char * path = "/directorio/ficheiro.txt"; FILE * fd = NULL; if ((fd = fopen(path, "r")) == NULL) { // ou o ficheiro não existe ou não tens permissões para o ler // de qualquer maneira tens um problema para resolver } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
CAVC Posted April 4, 2012 Author Report Share Posted April 4, 2012 Não percebi muito bem essa parte por isso acho melhor não a usar :S Obrigado À mesma... Vai ser complicado isto Link to comment Share on other sites More sharing options...
pikax Posted April 4, 2012 Report Share Posted April 4, 2012 O "path" e' uma variavel que tem a localização do ficheiro. O "FILE *fd" e' um apontador para o ficheiro, se nao sabes isto, como e' que queres trabalhar com ficheiros? Pikax a tua ideia é bastante boa mas eu ainda nao posso usar isso classes porque ainda nao dei :S Se nao deste classes, de certeza que deste estruturas, podes usar a mesma logica para construires uma estrutura... Em C++ uma estrutura pode ter funcoes e constrores, so que as funções e membros estao em public. Usando o exemplo que o HappyHippyHippo, podes fazer para usar o fstream de c++ #include<iostream> #include<fstream> //para trabalhar com ficheiros using namespace std; int main() { char *path = "/directorio/ficheiro.txt"; //basta mudares para o nome do ficheiro que queres ifstream ficheiro(path); char buffer[256]; if(ficheiro.is_open()) cout<<"ficheiro aberto!!"<<endl; else { cout<<"ficheiro nao encontrado, ou sem permissoes para abrir"<<endl; cin.get(); //parar return 0; } ficheiro.getline(buffer,256); cout<<buffer<<endl; } mais informacoes sobre ficheiros Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
CAVC Posted April 11, 2012 Author Report Share Posted April 11, 2012 Boa tarde!!! // visualizar o saldo void visualizarSaldo(string codigo3) { string saldo4; string linha; ifstream in ("players.txt"); if (in.is_open ()) { while (! in.eof()) { while (getline (in, linha)); { string codigo = linha.substr(0, 7); if (codigo == codigo3) cout << saldo4 << "\n"; } } } in.close(); } Tenho aqui um codigo para um jogador poder visualizar o seu saldo E depois chamo esta função, na função main: else if (menu == 4) { cout << "Codigo de jogador: "; cin >> codigo3; visualizarSaldo(codigo3); } No entanto quando a chamo nao me mostra o saldo.... (já agora o codigo é o numero de jogador) Alguma ajuda??? Link to comment Share on other sites More sharing options...
Baderous Posted April 11, 2012 Report Share Posted April 11, 2012 Lê isto para saberes como postar código no fórum. Link to comment Share on other sites More sharing options...
CAVC Posted April 11, 2012 Author Report Share Posted April 11, 2012 Peço desculpa!!! Não sabia! Obrigado!!!! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 11, 2012 Report Share Posted April 11, 2012 ... string saldo4; ... cout << saldo4 << "\n"; ... em que linha de código é suposto atribuir o valor do saldo à variável saldo4 ???? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
CAVC Posted April 11, 2012 Author Report Share Posted April 11, 2012 o valor do saldo já é atribuido noutra funçao... que é quando se adiciona um jogador... aqui é so para um jogador ver quanto saldo ainda tem!! Não sei se me fiz entender... Link to comment Share on other sites More sharing options...
CAVC Posted April 11, 2012 Author Report Share Posted April 11, 2012 Já resolvi o meu problema! obrigado pela ajuda na mesma 🙂 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now