Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com manipulação de arquivos


.Resident.

Pergunta

Olá amigos, estou fazendo um programa simples em c, oque estou tentando fazer é grava o conteudo da var frase no arquivo Texto.txt

usei o cod assim:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


void  main(){

      char frase[][200]={"Alguma frase"};
      int i;
       char *arquivo;
        FILE *fp;
     
      arquivo=("textos.txt");
      fp = fopen(arquivo,"w");
     
        for (i=0; i<2; i++){
         fputs("%s\n",sitelist[i],fp); //Imprime o conteúdo da var frase no arquivo c:\\Texto.txt
        }
     
      getch();
     
     
 }

Alguém me da uma luz, porque esta dando erro fico grato.

Editado por .Resident.
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

arquivo=("textos.txt");
      fp = fopen(arquivo,"w");
O correto seria :
arquivo="textos.txt";
      fp = fopen(arquivo,"w");
ou diretamente :
fp = fopen("textos.txt","w");

Sempre uso este ultimo,

mas se o primeiro não funcionar

declare arquivo como

char arquivo[20];

e não como ponteiro, dependendo

do compilador pode dar algum Warning.

Espero ter ajudado.

return 0;

Link para o comentário
Compartilhar em outros sites

  • 0
arquivo=("textos.txt");
      fp = fopen(arquivo,"w");
O correto seria :
arquivo="textos.txt";
      fp = fopen(arquivo,"w");
ou diretamente :
fp = fopen("textos.txt","w");
Sempre uso este ultimo, mas se o primeiro não funcionar declare arquivo como char arquivo[20]; e não como ponteiro, dependendo do compilador pode dar algum Warning. Espero ter ajudado. return 0;
Problema esta na linha 17
fputs("%s\n",sitelist[i],arquivo);

aqui ele deveria gravar os dado do vetor sitelist no meu ponteiro chamado de arquivo que aponta e cria o arquivo Textos.txt.

E o retorno dele é void esqueci de por

Link para o comentário
Compartilhar em outros sites

  • 0
Olá amigos, estou fazendo um programa simples em c, oque estou tentando fazer é grava o conteudo da var frase no arquivo Texto.txt

usei o cod assim:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


void  main(){

      char frase[][200]={"Alguma frase"};
      int i;
       char *arquivo;
        FILE *fp;
     
      arquivo=("textos.txt");
      fp = fopen(arquivo,"w");
     
        for (i=0; i<2; i++){
         fputs("%s\n",sitelist[i],fp); //Imprime o conteúdo da var frase no arquivo c:\\Texto.txt
        }
     
      getch();
     
     
 }
Alguém me da uma luz, porque esta dando erro fico grato.
Vamos por partes: 1°) não entendi porque você criou uma matriz de char ao inve do vetor em
char frase[][200]={"Alguma frase"};
use somente
char frase[200]="Alguma frase";
2°) Não declare char *arquivo à menos que você use alocação dinamica. Você não está criando uma string e sim um ponteiro para um char. Use:
char arquivo[20];
ou
char *arquivo=(char *)malloc(20*sizeof(char));
lembrando de dar um free(arquivo) no final do programa caso use a segunda opção. 3°) Não há a necessidade dos parenteses em arquivo=("textos.txt"); 4°)
for (i=0; i<2; i++){
                fputs("%s\n",sitelist[i],fp); //Imprime o conteúdo da var frase no arquivo c:\\Texto.txt
           }
Aqui esta o maior problema (ou problemas). Primeiro, perceba que o seu for vai de 0 a 1, ou seja, (se funcionasse)imprimiria a string 2 vezes. Segundo, você não tem nenhuma variavel "sitelist", voce tem a string "frase". Terceiro, não use %s no fputs, ponha apenas a string que deseja imprimir. Uma forma melhor de fazer essa impressao seria:
fputs(frase,fp);

Perceba que o for nem é necessario

Uma dica pra você que esta começando. Procure ler sobre as funcoes e seu parametros antes de usa-las. E também aprenda a interpretar as informações de erro que os compiladores fornecem, uma vez que você saiba o que cada uma diz, você consegue resolver os erros por si mesmo.

EDIT: Não é necessario o #include conio.h para esse seu programa

Editado por General Shepherd
Link para o comentário
Compartilhar em outros sites

  • 0

Bom oque estou tentando fazer é o seguinte:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // declara e inicializa um array de strings
  // veja que definimos o limite de 99 caracteres
  // por string (uma posição é para o caractere
  // de fim de linha)
  char nomes[][100] = {"Osmar J. Silva", "Carlos de Souza",
    "Fernanda Reis", "Joaquim Alves"};
    FILE *fp;
    char arquivo;
    
    arquivo = "lista.txt";
    fp = fopen (arquivo,"w+")

  // vamos exibir os nomes
  int i;
  for(i = 0; i < 4; i++){
    fputes(nomes[i],fp);
  }
  
  fclose(fp);
  
  

  system("PAUSE");
  return 0;
}

Ou seja quero gravar os nomes gerado pelo array de strings, no arquivo list.txt. figo grato se alguém souber onde estou errando no cod

Editado por .Resident.
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...