Ir para o conteúdo
micront

ajuda com ficheiros

Mensagens Recomendadas

micront    0
micront

esse programa ao correr cria um novo ficheiro,eu cria abrir um ficheiro ja existente e ao mesmo tempo que o abra para se poder ver o que tem la escrito

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

Tens de usar a função fopen para abrir o ficheiro e de seguida usas a fgets para ler o conteúdo linha a linha e imprimes no monitor com printf.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
micront    0
micront

int main()

{

  FILE * pFile;

  char buffer [100];

  pFile = fopen ("myfile.txt" , "r");

  if (pFile == NULL) perror ("Error opening file");

  else

  {

    while ( ! feof (pFile) )

    {

      fgets (buffer , 100 , pFile);

      fputs (buffer , stdout);

    }

    fclose (pFile);

  }

  return 0;

Ja agora podiam ajudar a compreender estas linhas de codigo,sou iniciante e estou com alguma dificuldade em entender principalmente a parte do ciclo while :wallbash:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

Enquanto não chegar ao fim do ficheiro apontado pelo pFile (vê a documentação da função feof), lê do ficheiro 100 caracteres para um buffer (uma string), e imprime esses mesmos caracteres no ecrã. Por fim, fecha o ficheiro.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
micront    0
micront

FILE * pFile;

  char string [100];

  pFile = fopen ("Lista P.Erdos" , "r");

  if (pFile == NULL) perror ("Erro ao abrir o ficheiro");

  else {

    fgets (string , 100, pFile);

    puts (string);

    fclose (pFile);

  }

    return 0;

fiz este programa para ler linha a linha do ficheiro mas nao estou a conseguir

alguem me pode ajudar

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
micront    0
micront

ja consegui mas se tiver mais do que uma palavra na mesma linha e quiser meter essas palavras em linhas diferentes como faço.

Vou escrever um exemplo para se perceber melhor:

joao,carlos,jose,joaquim.

output

joao

carlos

jose

joaquim

:wallbash:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
micront    0
micront

dentro do while fiz o seguinte:

else {

      while(fgets (string , 100, pFile))

     

      puts(string);

  }

    fclose (pFile);

a seguir a  while(fgets (string , 100, pFile)) coloco a funçao strtok

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
micront    0
micront

fiz o seguinte e da me erro segment fault

  FILE * pFile;

  char string [100];

  pFile = fopen ("Lista P.Erdos" , "r");

  if (pFile == NULL) perror ("Erro ao abrir o ficheiro");

  else {

      while(fgets (string , 100, pFile),pFile!=NULL)

      {

          printf("%s\n",pFile);

          pFile=strtok(NULL,",.-");

      puts(string);

  }

    fclose (pFile);

  }

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade