Criar arquivo .txt [RESOLVIDO]

1. Criar arquivo .txt [RESOLVIDO]

Carlos Eduardo
kadu_

(usa Ubuntu)

Enviado em 31/03/2009 - 13:19h

Olá pessoal!!
Eu estou iniciando no ramo da programação em C. Eu fiz um programa que calcula uma função de onda para uma faixa de valores.
Eu queria q o programa criasse um arquivo .txt e que o resultado apresentado fosse passado para esse novo arquivo criado.
Alguem pode me ajudar a fazer isso?

Obrigado!!


  


2. MELHOR RESPOSTA

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 04/04/2009 - 18:53h

Olá amigo,

Para abrir o arquivo:

FILE *fopen ( const char *name, const char *perm );

name: nome do arquivo
perm: permissoes do programa no arquivo

por exemplo:

FILE *fp;
fp = fopen ( "funcao_onda.txt", "w" );

if ( !fp ) exit (0);
...

Para ler/escrever no arquivo:

fscanf ( FILE *fp, const char *cmd, ... );
fprintf ( FILE *fp, const char *cmd, ... );

A unica diferença entre fscanf/fprintf para scanf/printf é o primeiro argumento, que será um ponteiro para o descritor do arquivo.

No final do programa, sempre feche os descritores.

fclose ( FILE *fp );

Para maior esclarecimento:

$ man fprintf
$ man fscanf
$ man open
$ man fopen
$ man fclose
...

Resumindo, o manual do linux pode ser de grande ajuda nesses problemas. Sempre procure por referencias, nunca por resoluções, senão você não aprenderá a programar. Programacao é um exercicio constante, e se não praticar e apenas pegar resoluções em fóruns, não irá aprender. ;)

Happy coding!

Espero ter ajudado,
Slackware_10
[]'s

P.S.: Existem toneladas de codigos que escrevem em arquivos aqui no VOL (acho que inclusive tenho uns 3 ou 4 publicados), procure-os e leia-os bastante, assim aprenderá sobre como usar funções (alem de funções, aprenderá também estilo de programação - o que é muito importante).

3. Re: Criar arquivo .txt [RESOLVIDO]

Carlos Eduardo
kadu_

(usa Ubuntu)

Enviado em 02/04/2009 - 18:02h

up


4. Re: Criar arquivo .txt [RESOLVIDO]

Eduardo
bolche

(usa Ubuntu)

Enviado em 02/04/2009 - 18:08h

Dá uma olhada aqui:
http://equipe.nce.ufrj.br/adriano/c/apostila/es.htm


5. Re: Criar arquivo .txt [RESOLVIDO]

Macro
macro

(usa Debian)

Enviado em 02/04/2009 - 23:23h

Sou iniciante em C, apenas C mesmo. E aproveitanto o tópico fiz um programinha para pegar as informações de int e char e colocar no arquivo criado.
aqui está:

#include <stdio.h>

int main()
{
FILE *teste;
int idade=10;
char nome[6]="macro";
teste = fopen("info.txt","w+");

if((teste = fopen("info.txt","w+")) == NULL)
{
printf("\nErro ao abrir arquivo");
}
putc(idade,teste);
putc(nome,teste);

fclose(teste);
return (0);
}

Mais ao compilar me deparo com o seguinte erro:
"prog.c: In function ‘main’:
prog.c:15: warning: passing argument 1 of ‘_IO_putc’ makes integer from pointer without a cast"

e no arquivo "info.txt" estpa simplismente um simbolo, ou as vezes um "ö"

Qual foi a causa do erro?



6. Re: Criar arquivo .txt [RESOLVIDO]

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 03/04/2009 - 08:56h

Vamos lá :
// Aqui você abre o arquivo, mas não testa
teste = fopen("info.txt","w+");
// Aqui você abre novamente o arquivo e testa
if((teste = fopen("info.txt","w+")) == NULL)
{
printf("\nErro ao abrir arquivo");
}

Você realmente queria abrir duas vezes o arquivo?

A função putc, aceito como argumentos : um caracter, e o ponteiro para o arquivo, e neste Warning, você passa um vetor para mesma, tem diferença??
Bom é somente isto, Abraços, e qualquer dúvida posta aí.


7. Re: Criar arquivo .txt [RESOLVIDO]

Macro
macro

(usa Debian)

Enviado em 03/04/2009 - 10:10h

Então quer dizer que "putc" aceita somente um caracter ?
por exemplo:
putc(a,teste);

Isso seria o correto?




8. Re: Criar arquivo .txt [RESOLVIDO]

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 03/04/2009 - 13:07h

sim, putc só aceita um caractere. além disso, você não deve passar um int puro, e mesmo um cast irá transformá-lo no caractere cujo valor asc será o valor do int (no seu caso, 10).
uma solução simples (há mais de uma) para o seu caso, visto que seu objetivo é apenas salvar as duas informações sequencialmente, sem qualquer delimitação ou algo que o valha e admitindo que o campo idade possa ser salvo como uma cadeia de caracteres, é usar fprintf, que tem sintaxe semelhante ao printf:

=================================================
#include <stdio.h>

int main()
{
FILE *teste;
int idade=10;
char nome[6]="macro";

if((teste = fopen("info.txt","w+")) == NULL)
{
printf("\nErro ao abrir arquivo");
return 1; /* informar ao shell que o programa terminou com erro :D */
}
else
{
fprintf(teste,"%d%s",idade,nome);
fclose(teste); /* fclose está condicionado apenas ao caso do arquivo ter sido mesmo aberto */
}
return 0;
}
=================================================

futuramente, ao ler os dados, atente ao fato de que será necessário transofrmar o campo idade em int, caso necessite realizar alguma operação numérica. então pode usar algo como atoi ou strtol.


9. Re: Criar arquivo .txt [RESOLVIDO]

Macro
macro

(usa Debian)

Enviado em 03/04/2009 - 19:45h

Obrigado pela resposta. Realmente, preciso estudar todos os comandos do C, e entender para cada um deles servem, assim saberei qual função usar e em qual momento. Ja tinha visto o "fprintf", mas não sabia sua forma correta de usar.


Obrigado a todos.


10. Re: Criar arquivo .txt [RESOLVIDO]

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 03/04/2009 - 21:22h

Mais um detalhe, não fprint, putc, não são comandos e sim funções com sua respectiva biblioteca. E, caso tenha resolvido sua dúvida, coloque como resolvido, para caso alguém também tenha sua dúvida, já ache direto.

Abraços


11. Re: Criar arquivo .txt [RESOLVIDO]

Macro
macro

(usa Debian)

Enviado em 03/04/2009 - 23:03h

Não, f_Candido , não sou o dono do tópico, apenas aproveitei este para publicar meu problema.

Ah, obrigado pela correção *Funções* :-)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts