Ajuda em C

13. Re: Ajuda em C

Robson Barreto
4c1d

(usa Ubuntu)

Enviado em 03/11/2012 - 21:28h

Cara eu não manjo muito de C( consigo entender algumas partes por causa do Java =]] ), porém se explicar mais detalhadamente o problema eu posso te ajudar com a parte lógica !


  


14. Re: Ajuda em C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 05/11/2012 - 01:39h

Uma coisa importante me escapou anteriormente: você está abrindo o arquivo em modo de aposição (append). Nesse modo, você só tem acesso de escrita no arquivo, e todas as operações de escrita são efetuadas ao final do arquivo, mesmo que você tente instruir o contrário pode meio de rewind() ou fseek().

Uma forma adequada de abrir um arquivo no qual você pode, alternadamente, escrever e ler é a seguinte.

/*
Tenta primeiro abrir para leitura preservando o conteúdo do arquivo ("r") e
permitindo TAMBÉM escrita ("+"). Se isso falhar, assume que o arquivo não
existe, e tenta criar um arquivo novo (vazio) para escrita ("w"), permitindo
TAMBÉM leitura ("+"). Se também isso falhar, desiste de abrir o arquivo,
indicando erro.
*/
if(
(fp=fopen(filename, "r+"))==NULL &&
(fp=fopen(filename, "w+"))==NULL
){
fprintf(stderr, "Não foi possível abrir o arquivo (codigo de erro %d).\n", errno);
exit(1);
}


Dependendo do programa, pode ser que faça sentido usar "a+" em lugar de "w+", permitindo leituras em qualquer posição do arquivo, embora todas as operações de escrita ocorram sempre em seu final.


15. Re: Ajuda em C

Black Mamba
BlackMamba

(usa Linux Mint)

Enviado em 06/11/2012 - 18:49h

Então....

uma duvida, eu fiz ele no codblocks (win) e agora fui tentar compilar pelo linux, ele compila e tudo, mas não imprime nada na tela. Alguem sabe me explicar o o pq??


16. Re: Ajuda em C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 07/11/2012 - 01:25h

Não somos adivinhos. Você teria de nos dizer pelo menos como compilou e como executou o programa, e todas as mensagens de erro que eventualmente recebeu na tela.

Ao contrário do Windows, que abre um emulador de console quando ele detecta que a aplicação é para ser executada em modo console, o Linux e outros Unixes não abrem um terminal se você simplesmente mandar o programa executar a partir de um programa gestor de arquivos em modo gráfico, ou mesmo de dentro do IDE, a não ser que você instrua o sistema a fazê-lo. Esse pode ser o seu caso ou não, mas para podermos dizer com certeza, só mesmo se você der a informação que eu mencionei acima.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts