seuqram Posted April 2, 2012 Report Share Posted April 2, 2012 pessoal tou a fazer um jogo... "batalha naval" e faltame umas coisitas no menu(opçoes) queria criar um ficheiro assim: volume: 1000 balanço: 100 ritmo: 1000 modo de jogo: 2 ... eu sei fazer isso mas o que eu n sei é ler inteiros em linhas que eu quizer exemplo: dizia ao programa para ler a linha 3, um inteiro e guardasse para a variavel a. a variavel a valia 1000. dizia ao pograma para ler a linha 4 do ficheiro... ele lia 2... ja tentei tudo ate meter /n no fscanf para ler outra linha 😉 mas so que n percebo... pode ser que saibam alguma funçao para o que eu quero... Link to comment Share on other sites More sharing options...
pikax Posted April 2, 2012 Report Share Posted April 2, 2012 http://www.cplusplus.com/reference/iostream/istream/getline/ tambem tens uma funcao getline para tratamento de ficheiros em C 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...
seuqram Posted April 2, 2012 Author Report Share Posted April 2, 2012 nao ha nenhuma funçao stdio.h que fassa o que eu quero?(dizer ao programa em que linha de um ficheiro quero que leia)! Link to comment Share on other sites More sharing options...
pmg Posted April 2, 2012 Report Share Posted April 2, 2012 nao ha nenhuma funçao stdio.h que fassa o que eu quero?(dizer ao programa em que linha de um ficheiro quero que leia)! Nota que <stdio.h> é um header de C (e de C++ só por compatibilidade com C). Em C++ seria talvez melhor usar o cabeçalho <iostream>. Não há nenhuma função (em C Standard) com protótipo no <stdio.h> que faça o que tu queres. Precisas de construir uma versão personalizada ... o que não é nada difícil. Perguntas (válidas tanto para C como para C++): se pedires a linha 6 dum ficheiro com 3 linhas, qual queres que seja o resultado? se pedires a linha 4903 dum ficheiro e logo a seguir a linha 4902, da segunda vez queres ler o ficheiro novamente desde o início (ou o conteúdo do ficheiro fica guardado "dentro" da função)? se pedires uma linha do ficheiro, mas essa linha não tiver um número (linha em branco, por exemplo; ou um comentário ...) qual queres que seja o resultado? What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
seuqram Posted April 2, 2012 Author Report Share Posted April 2, 2012 Nota que <stdio.h> é um header de C (e de C++ só por compatibilidade com C). Em C++ seria talvez melhor usar o cabeçalho <iostream>. Não há nenhuma função (em C Standard) com protótipo no <stdio.h> que faça o que tu queres. Precisas de construir uma versão personalizada ... o que não é nada difícil. Perguntas (válidas tanto para C como para C++): se pedires a linha 6 dum ficheiro com 3 linhas, qual queres que seja o resultado? se pedires a linha 4903 dum ficheiro e logo a seguir a linha 4902, da segunda vez queres ler o ficheiro novamente desde o início (ou o conteúdo do ficheiro fica guardado "dentro" da função)? se pedires uma linha do ficheiro, mas essa linha não tiver um número (linha em branco, por exemplo; ou um comentário ...) qual queres que seja o resultado? 1-vai aparecer em branco!(se nao ouver nada la escrito,sim!) 2-quero que leia o conteudo do ficheiro fica guardado "dentro" da função 3-NULL eu ja mexi com o fopen,fscanf,fpritf... e por isso que queria uma funçao da biblioteca stdio! Link to comment Share on other sites More sharing options...
seuqram Posted April 2, 2012 Author Report Share Posted April 2, 2012 so que ainda n percebi essa funçao "pikax" ela le mesmo um ficheiro.txt? Link to comment Share on other sites More sharing options...
pikax Posted April 2, 2012 Report Share Posted April 2, 2012 so que ainda n percebi essa funçao "pikax" ela cria mesmo um ficheiro.txt? a funcao getline() e' para teres uma linha no ficheiro 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...
seuqram Posted April 2, 2012 Author Report Share Posted April 2, 2012 a funcao getline() e' para teres uma linha no ficheiro -.- eu n quero "ter"(criar), eu quero ler uma linha que eu quizer no ficheiro... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 2, 2012 Report Share Posted April 2, 2012 tens mesmo que criar uma função que te le a linha que pretendes. tens que ver que o conteudo de um ficheiro é uma sucessão de bytes. apesar de veres por linhas os ficheiros de texto, isso em termos informáticos não é bem assim porque cada SO tem maneiras diferentes de interpretar uma mudança de linha. uma solução seria assim (visto que o teu ficheiro é bem formatado): void getLine(std::istream * file, std::string * string) { char buffer[256]; file->getline(buffer, 256); string = buffer; } void getLineN(std::istream * file, std::string * string, int n) { file->seekg(0, ios_base::beg); int i = 0; while (i != n) { getLine(file, string); i++; } } void getLineValue(std::istream * file, int * value, int n) { std::string s; getLineN(file, &string, n); sscanf(string.c_str(), "%s:%d", value); } PS : não testado ... fica a ideia (uma pequena alteração ...) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
seuqram Posted April 2, 2012 Author Report Share Posted April 2, 2012 -.- 1-eu nem conheco bem a biblioteca iostream... 2-sscanf? ou fscanf? 3-void getLineN(std::istream * file, std::string * string, int n) eu nem sei o que sao parametros! 4-nao percebo "->" so sei que pode acessar a algum membro de qual quer coisa mas n percebo... 5-nem percebi a logica :nono1: (com estas duvidas todas)! pode ser que arranje outra sulucao eu proprio para o que eu quero... ate posso criar um ficheiro.txt para cada inteiro que quero! 6-ainda n reparaste que sou um iniciante?! nem sei o que fazem alguns sinas em c/c++! Link to comment Share on other sites More sharing options...
pikax Posted April 3, 2012 Report Share Posted April 3, 2012 -.- 1-eu nem conheco bem a biblioteca iostream... 2-sscanf? ou fscanf? 3-void getLineN(std::istream * file, std::string * string, int n) eu nem sei o que sao parametros! 4-nao percebo "->" so sei que pode acessar a algum membro de qual quer coisa mas n percebo... 5-nem percebi a logica :nono1: (com estas duvidas todas)! pode ser que arranje outra sulucao eu proprio para o que eu quero... ate posso criar um ficheiro.txt para cada inteiro que quero! 6-ainda n reparaste que sou um iniciante?! nem sei o que fazem alguns sinas em c/c++! 1 - a biblioteca iostream e para fazer inputs e outputs em C++ 2- fscanf e para ficheiros, sscanf e para mandar informacao para um buffer. 3- o primeiro parametro e' um apontador para um ficheiro, o segundo para uma string, o terceiro e o numero da linha que queres. 4- o operador '->' e para aceder a um membro de um apontador. 6- Podes ser iniciante, mas se as tuas questões requerem um grau de dificuldade que nao suportas, entao nao achas que devias de ganhar pratica a fazer exemplos menos "complexos" e indo subindo de dificuldade. 6 2a parte- os sinais procuras na net sobre operadores. Eu de vez em quando meto-me a fazer "projectos" que requeiram conhecimentos que eu nao tenho. 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...
seuqram Posted April 3, 2012 Author Report Share Posted April 3, 2012 voces disseram que a biblioteca studio nao era bom para eu usar neste problema? ja resolvi meus problemas com a biblioteca stdio!... 😄 mas obrigado a todos por a cooperação... quando meu jogo estiver pronto mando-o a cada um no forum 😛 Link to comment Share on other sites More sharing options...
pmg Posted April 3, 2012 Report Share Posted April 3, 2012 voces disseram que a biblioteca studio nao era bom para eu usar neste problema? ja resolvi meus problemas com a biblioteca stdio!... 😛 LOL @ biblioteca studio ... O que se passa é que o header <stdio.h> é um header de C (e nao de C++), que, quando usado em C++ nao usa algumas das "novidades" existentes em C++, tornando-se por isso mesmo, pouco recomendavel. Assim mais ou menos, é como ter um Ferrari e um tractor e querer que o tractor funcione com gasolina de aviao ... ou que o Ferrari funcione com gasoleo agricola. Funcionar, funciona. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
pikax Posted April 3, 2012 Report Share Posted April 3, 2012 voces disseram que a biblioteca studio nao era bom para eu usar neste problema? ja resolvi meus problemas com a biblioteca stdio!... 😛 mas obrigado a todos por a cooperação... quando meu jogo estiver pronto mando-o a cada um no forum 😛 LOL... a biblioteca "stdio.h" e' C, em C++ e' recomendado usar "cstdio". É algo parecido a utilizar "gets" funciona bem, mas podes correr o risco de overflow no buffer. Quando tiveres o jogo terminado, manda para o pessoal ver 😉 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...
seuqram Posted April 4, 2012 Author Report Share Posted April 4, 2012 ya eu mostrovos... 😄 se quizerem ver meu 1º jogo feito em allegro vejam este video: http://www.youtube.com/watch?v=gQVPXr1eFGM&feature=plcp&context=C4c12cc9VDvjVQa1PpcFM6_LL7rsPZ_GDinQTE8Q5Md7BbuvCofks%3D e depois la encontrarao o site para voces fazerem o download do jogo... o video n ficou la grande coisa :bored: o programa gravou o som boe alto e ficou horrivel e o progrema tambem nao gravou fullscreen ficou um bocado entranho... mas vejam o video e descarreguem meu 1º jogo 😛 quando meu segundo jogo estiver pronto meteo aqui no forum!"batalha naval" Link to comment Share on other sites More sharing options...
pikax Posted April 4, 2012 Report Share Posted April 4, 2012 parabéns, esta engraçado, mas podias melhorar um pouco. Devias deixar o user escolher entre full-screen ou windows mode. 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...
HappyHippyHippo Posted April 5, 2012 Report Share Posted April 5, 2012 epa .. estava de auscutadores ... fiquei surdo durante 10 minutos .... para primeiro joguinho até está bem 1 conselho ... a tua identação leva um 2 de 1 a 5 .... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
seuqram Posted April 5, 2012 Author Report Share Posted April 5, 2012 pessoal podem-me dizer mais uma coisa? o volume do play sample vai de 0 a 255, mas da para dublicar o som ou seja meter 500? ? Link to comment Share on other sites More sharing options...
seuqram Posted April 5, 2012 Author Report Share Posted April 5, 2012 parabéns, esta engraçado, mas podias melhorar um pouco. Devias deixar o user escolher entre full-screen ou windows mode. ya, mas isso e só se eu consseguisse fazer um janelinha pequena(daquelas quando aparece: voce que sair, sim ou nao) mas aparecia uma janelinha a dizer window mod/fullscreen conessegues fazer isso? Link to comment Share on other sites More sharing options...
pikax Posted April 5, 2012 Report Share Posted April 5, 2012 Trabalhei com o allegro pouco tempo e nao fiz quase nada, mas sei que da para mudar a resolucao, sem ter qe criar uma janela tens aqui - procura por: set_gfx_mode 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...
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