1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[ C ] - Ajuda: Ficheiro para vector

Discussão em 'Programação' iniciada por Keith, 8 de Março de 2007. (Respostas: 6; Visualizações: 1071)

  1. Keith

    Keith Power Member

    Boa tarde.

    Estou com um problema: quero ler um ficheiro, que em cada linha possui uma palavra ou frase e quero colocar, cada uma dessas linhas num vector.
    Não estou a conseguir de forma nenhuma.

    Deixo exemplo:
    Leio o ficheiro
    - Ficheiro bla.txt
    -----------------------
    Computador
    Teclado
    Rato
    Monitor
    Caixa de CDs
    -----------------------

    E escrevo para o vector
    - Vector plvs
    -----------------------
    plvs[0] = Computador
    plvs[1] = Teclado
    plvs[2] = Rato
    plvs[3] = Monitor
    plvs[4] = Caixa de CDs
    -----------------------


    Espero ter-me feito entender.
    Desde já, obrigado.

    Keith
     
    Última edição: 8 de Março de 2007
  2. HecKel

    HecKel The WORM

    Mostra o código do que tens feito, sff.

    Quando colocares código, toma atenção às tags de código: [code] CÓDIGO [/code]

    abraços, HecKel
     
  3. El_UnO

    El_UnO 1st Folding then Sex

    Isso é simples de resolver com um mero ciclo + função getchar(). O getchar lê-te um caracter de cada vez e vais colocando no array e depois metes como caso de paragem quando chegar ao '\n' ou EOF. Toma cuidado também para não excederes o tamanho do array... :P

    Para isso ficar mesmo guardado como string, não te esqueças de meter o newline '\n' bem como o caracter terminador '\0' :)
     
  4. Keith

    Keith Power Member

    Eu já não programo em C há quase 3 anos, por isso, desculpem qualquer coisinha...:-D

    Código:
    #define NSts 36
    
    int LerForcaSts (int sts[NSts])
    {
    FILE *fp;
    int i;
    
       fp = fopen(FORCA,"r");
       for(i=0;i<=NSts;i++)
       {
          fscanf("%s",&sts[i]);
       }
       fclose(fp);
       return 0;
    } 
    
    Outra coisa: tenho uma função que recebe uma string e transforma os caracteres diferentes do espaço (" "), em "_". Se fizer o código correspondente na função main, não tenho problemas, mas se a fizer através de uma função auxilar, obtenho erros muito estranhos.

    Código:
    char escondeFrase (char fraseO[128])
    {
    char fraseC[128];
    int i;
    
       strcpy(fraseC,fraseO);
    
       for(i=0;i<strlen(fraseC);i++)
       {
         if (fraseC[i] != ' ') fraseC[i] = '_';
       }
    }
    
    Se puderem ajudar, agradeço mais uma vez.
    Keith
     
  5. Keith

    Keith Power Member

    Peço desculpa pela impaciência, mas estou com alguma pressa.
    Se alguém puder ajudar, ficaria agradecido.

    Keith
     
  6. Cesaria

    Cesaria Power Member

    Bem em relação ao LerForcaSts detectei alguns erros, tens de ter atenção qd passares o sts pois terás de ter reservado espaço para o array do tipo char sts[36+1][40];

    PS:Espero que o plvs que referiste seja este sts..

    Código:
    #define NSts 36
     
    int LerForcaSts (char **sts)  /*Aqui tinhas erro, tinhas o array como int
    {
       FILE *fp;
       int i;
     
       if ((fp = fopen("FORCA", "r")) == NULL) /*Aqui não sei se declaraste FORCA como 
                                                               variável global*/
          return -1;
     
       for(i=0;i<=NSts;i++)
       {
          fscanf(fp,"%s",sts[i]);
       }
     
       fclose(fp);
       return 0;
    }
    
     
  7. Keith

    Keith Power Member

    Obrigado Cesaria.
     

Partilhar esta Página