seuqram Posted April 2, 2012 at 12:36 AM Report #446986 Posted April 2, 2012 at 12:36 AM 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...
pikax Posted April 2, 2012 at 12:42 AM Report #446987 Posted April 2, 2012 at 12:42 AM 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."
seuqram Posted April 2, 2012 at 12:43 PM Author Report #447044 Posted April 2, 2012 at 12:43 PM 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)!
pmg Posted April 2, 2012 at 01:12 PM Report #447055 Posted April 2, 2012 at 01:12 PM 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!
seuqram Posted April 2, 2012 at 01:21 PM Author Report #447058 Posted April 2, 2012 at 01:21 PM 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!
seuqram Posted April 2, 2012 at 01:26 PM Author Report #447062 Posted April 2, 2012 at 01:26 PM so que ainda n percebi essa funçao "pikax" ela le mesmo um ficheiro.txt?
pikax Posted April 2, 2012 at 02:27 PM Report #447078 Posted April 2, 2012 at 02:27 PM 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."
seuqram Posted April 2, 2012 at 05:02 PM Author Report #447123 Posted April 2, 2012 at 05:02 PM 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...
HappyHippyHippo Posted April 2, 2012 at 05:34 PM Report #447129 Posted April 2, 2012 at 05:34 PM 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
seuqram Posted April 2, 2012 at 11:36 PM Author Report #447172 Posted April 2, 2012 at 11:36 PM -.- 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++!
pikax Posted April 3, 2012 at 12:18 AM Report #447176 Posted April 3, 2012 at 12:18 AM -.- 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."
seuqram Posted April 3, 2012 at 04:10 PM Author Report #447286 Posted April 3, 2012 at 04:10 PM 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 😛
pmg Posted April 3, 2012 at 05:17 PM Report #447318 Posted April 3, 2012 at 05:17 PM 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!
pikax Posted April 3, 2012 at 06:59 PM Report #447330 Posted April 3, 2012 at 06:59 PM 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."
seuqram Posted April 4, 2012 at 11:13 PM Author Report #447650 Posted April 4, 2012 at 11:13 PM 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"
pikax Posted April 4, 2012 at 11:39 PM Report #447654 Posted April 4, 2012 at 11:39 PM 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."
HappyHippyHippo Posted April 5, 2012 at 06:00 AM Report #447663 Posted April 5, 2012 at 06:00 AM 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
seuqram Posted April 5, 2012 at 10:16 AM Author Report #447686 Posted April 5, 2012 at 10:16 AM 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? ?
seuqram Posted April 5, 2012 at 10:19 AM Author Report #447687 Posted April 5, 2012 at 10:19 AM 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?
pikax Posted April 5, 2012 at 12:18 PM Report #447719 Posted April 5, 2012 at 12:18 PM 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."
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