• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

tiag0

Duvidas a programar em C

5 mensagens neste tópico

Boas pessoal, tenho algumas duvidas em programar em C.

Tenho um programa que le um ficheiro de texto linha a linha, mas nao sei como separar cada palavra dessa linha e apresentar como strings separadas.

Cada palavra do ficheiro está separada por "," (virgula) logo teria que detectar a virgula e separar.

Agradeço toda a ajuda.

#include <stdio.h>
#include <stdlib.h>
const int TAM_BUFFER = 255;
int main(int argc, char *argv[])
{
  FILE *arquivo = fopen("nomes.txt", "r");
  char buffer[TAM_BUFFER];
  if(arquivo != NULL){
    while(fgets(buffer, TAM_BUFFER, arquivo)){
      printf("%s\n", buffer);
    }
    fclose(arquivo);
  }
  else
    printf("Nao foi possivel abrir o arquivo.");
  printf("\n\n");
  system("PAUSE");
  return 0;
}

Aqui está o codigo que ja tenho para apresentar linha a linha do ficheiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha este exemplo retirado do http://www.cplusplus.com/reference/clibrary/cstring/strtok/

/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usei a função strtok mas agr depois de criar um ficheiro nao consigo la introduzir a string que dividi. falta.m declarar cada string numa variavel. obrigado i agradeço ajuda.

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

const int TAM_BUFFER = 255; // quantidade de caracteres a serem lidos no buffer de cada vez

int main(int argc, char *argv[])
{
  FILE *arquivo = fopen("nomes.txt", "r");
  char buffer[TAM_BUFFER];
  char[100]=nome1;
  
  // testa se o arquivo foi aberto com sucesso
  if(arquivo != NULL)
  {

    // ler o conteúdo do arquivo e armazenar no buffer
    while(fgets(buffer, TAM_BUFFER, arquivo))
    {

//ler palavra a palavra
  char *token = NULL;
  token=strtok(buffer, "," );
  while( token )
   {
    printf("%s\n",token);
    token = strtok( NULL, "," );
    
   }
     // criar novos ficheiros 
{
         FILE *file = fopen("joao", "w");   //como escrever os nomes dentro do ficheiro??
         fprintf(file,"%s\n ",//variavel de cada string);  //nome1 seria os nomes que esta no buffer
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crias um array de strings onde guardas as strings geradas pelo strtok. Depois percorres o array e escreves as várias strings no ficheiro desejado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora