CAVC Posted April 2, 2012 at 03:26 PM Report #447100 Posted April 2, 2012 at 03:26 PM 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!
HappyHippyHippo Posted April 2, 2012 at 03:43 PM Report #447109 Posted April 2, 2012 at 03:43 PM 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
CAVC Posted April 2, 2012 at 03:49 PM Author Report #447112 Posted April 2, 2012 at 03:49 PM 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.
CAVC Posted April 2, 2012 at 04:25 PM Author Report #447117 Posted April 2, 2012 at 04:25 PM string adicionaJogador (char nome, int codigo, double saldo); Estava a pensar fazer uma funçao daquele tipo mas nao sei se posso 😛
seuqram Posted April 2, 2012 at 05:11 PM Report #447125 Posted April 2, 2012 at 05:11 PM 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])
pikax Posted April 2, 2012 at 07:18 PM Report #447137 Posted April 2, 2012 at 07:18 PM 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."
CAVC Posted April 4, 2012 at 01:48 PM Author Report #447463 Posted April 4, 2012 at 01:48 PM 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?? 😛
HappyHippyHippo Posted April 4, 2012 at 01:51 PM Report #447465 Posted April 4, 2012 at 01:51 PM 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
CAVC Posted April 4, 2012 at 02:01 PM Author Report #447475 Posted April 4, 2012 at 02:01 PM 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
HappyHippyHippo Posted April 4, 2012 at 02:05 PM Report #447479 Posted April 4, 2012 at 02:05 PM 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
CAVC Posted April 4, 2012 at 02:08 PM Author Report #447480 Posted April 4, 2012 at 02:08 PM Explica-me o fd e o path são tipo variáveis?? :S Obrigado desde já Happy
HappyHippyHippo Posted April 4, 2012 at 02:15 PM Report #447482 Posted April 4, 2012 at 02:15 PM 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
CAVC Posted April 4, 2012 at 02:33 PM Author Report #447486 Posted April 4, 2012 at 02:33 PM Não percebi muito bem essa parte por isso acho melhor não a usar :S Obrigado À mesma... Vai ser complicado isto
pikax Posted April 4, 2012 at 04:29 PM Report #447526 Posted April 4, 2012 at 04:29 PM 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."
CAVC Posted April 11, 2012 at 12:33 PM Author Report #448561 Posted April 11, 2012 at 12:33 PM 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???
Baderous Posted April 11, 2012 at 12:49 PM Report #448563 Posted April 11, 2012 at 12:49 PM Lê isto para saberes como postar código no fórum.
CAVC Posted April 11, 2012 at 12:51 PM Author Report #448564 Posted April 11, 2012 at 12:51 PM Peço desculpa!!! Não sabia! Obrigado!!!!
HappyHippyHippo Posted April 11, 2012 at 01:34 PM Report #448573 Posted April 11, 2012 at 01:34 PM ... 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
CAVC Posted April 11, 2012 at 01:37 PM Author Report #448575 Posted April 11, 2012 at 01:37 PM 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...
CAVC Posted April 11, 2012 at 02:17 PM Author Report #448596 Posted April 11, 2012 at 02:17 PM Já resolvi o meu problema! obrigado pela ajuda na mesma 🙂
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