resende Postado Abril 11, 2010 Denunciar Share Postado Abril 11, 2010 (editado) Olá galera sou novo no fórum e também estou começando a programar agora.Gostaria de saber como ler strings e valores em um arquivo txt e depois imprimiros mesmos em outro arquivo txt.Estou tentando ler a string com fgets e imprimir com fputs mas o resultadoé um monte de caracteres ilegiveis.Os valores estou tentando ler com fscanf e imprimir com fprintf mas o resultadoe uma mensagem dizendo que o cnteudo do arquivo não é o esperado.Se alguém souber onde encontro um código de exemplo com esses comandos fazendomais ou menos o que estou tentando fazer eu agradeço muito. Editado Abril 11, 2010 por resende Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Abril 11, 2010 Denunciar Share Postado Abril 11, 2010 Se possível poste seu código, fica mais fácil ajudar assim. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 resende Postado Abril 11, 2010 Autor Denunciar Share Postado Abril 11, 2010 #include <stdio.h> #include <stdlib.h> int main() { FILE *aed; aed = fopen("c://expressoes.txt", "r"); if(aed == NULL) { printf("Falha ao abrir o arquivo!"); } aed = fopen("c://resultados.txt", "w"); float n1 = 0.0, n2 = 0.0, n3 = 0.0; char c1, c2, nome; int expressao1; fscanf(aed,"%f%c%df%c%f", n1, c1, n2, c2, n3); fprintf("%f%c%df%c%f", n1, c1, n2, c2, n3); fclose(aed); system("pause"); return 0; } Como eu disse o que é imprimido no arquivo são caracteres ilegiveis. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Abril 11, 2010 Denunciar Share Postado Abril 11, 2010 Não cheguei a testar o código, mas você abriu o arquivo no modo de gravação (w) e está tentando ler. Tente trocar o "w" por um "r" (ou "r+", como você vai gravar depois) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Abril 11, 2010 Denunciar Share Postado Abril 11, 2010 E ele abriu dois arquivos diferentes mas usou o mesmo ponteiro "aed". Você tem que declarar dois ponteiros FILE* diferentes, um pra cada arquivo:... FILE *aed, *aed2; aed = fopen("c://expressoes.txt", "r"); if(aed == NULL) { printf("Falha ao abrir o arquivo!"); } aed2 = fopen("c://resultados.txt", "w"); if(aed2 == NULL) { printf("Falha ao abrir o arquivo!"); } float n1 = 0.0, n2 = 0.0, n3 = 0.0; char c1, c2, nome; int expressao1; fscanf(aed,"%f%c%df%c%f", &n1, &c1, &n2, &c2, &n3); fprintf(aed2,"%f%c%df%c%f", n1, c1, n2, c2, n3); fclose(aed); fclose(aed2); system("pause"); return 0;Vê se dá certo, eu não compilei. Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 resende Postado Abril 13, 2010 Autor Denunciar Share Postado Abril 13, 2010 Vlw pela dica Ronaldo, o foda é que ainda está imprimindo caracteres malucos no arquivo de texto :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Abril 13, 2010 Denunciar Share Postado Abril 13, 2010 Você está tentando abrir o arquivo pelo bloco de notas, é isso?Se for assim vão aparecer caracteres estranhos mesmo porque a escrita não será feita como string. Para obter os valores corretamente, você deve recuperar os valores pelo seu código (você já faz) e escrever no programa (pode usar a função printf para isso).Se ainda assim não funcionar, tente abrir o arquivo em modo binário (acrescente um "b" ao final do modo). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 resende Postado Abril 14, 2010 Autor Denunciar Share Postado Abril 14, 2010 Então quer dizer que não dá para retornar o conteudo do arquivo em txt em outro arquivo txt?A maldita da professora pediu para ler um txt com 3 expressoes matematicas, imprimi-las em outro txt e nesse outro acrescentar o resultado da expressao, ou seja ela quer que leia a expressao de um arquivo e que imprima e a resolva em outro arquivo txt...tá osso :D :angry: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Abril 14, 2010 Denunciar Share Postado Abril 14, 2010 Posta seu código pra a gente ver e poder te ajudar melhor. Olha, eu já criei arquivos txt usando fprintf e consigui abrir com bloco de notas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Abril 14, 2010 Denunciar Share Postado Abril 14, 2010 É possível gravar de forma legível em arquivos .txt, mas pra isso você terá que salvar como string (para isso pode utilizar a função fprintf, como o Ronaldo falou).O que estou dizendo é que ao gravar números em modo binário num arquivo esse número não será 'legível' no bloco de notas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
resende
Olá galera sou novo no fórum e também estou começando a programar agora.
Gostaria de saber como ler strings e valores em um arquivo txt e depois imprimir
os mesmos em outro arquivo txt.
Estou tentando ler a string com fgets e imprimir com fputs mas o resultado
é um monte de caracteres ilegiveis.
Os valores estou tentando ler com fscanf e imprimir com fprintf mas o resultado
e uma mensagem dizendo que o cnteudo do arquivo não é o esperado.
Se alguém souber onde encontro um código de exemplo com esses comandos fazendo
mais ou menos o que estou tentando fazer eu agradeço muito.
Editado por resendeLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.