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

rcd

ler ficheiros

5 mensagens neste tópico

ola. Gostava de saber como se lê uma linha de um ficheiro (txt) ate encontar uma virgula  ",".E associar essa parte da linha a uma variavel.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para ler um ficheiro de texto podes usar o fgets.

char str[50];
FILE *fp;

fp = fopen("ficheiro.txt","r");

fgets(str, 50, fp); // isto le uma linha e passa o conteúdo para str

fclose(fp);

Queres até uma vírgula, mas não tens forma de saber onde está a vírgula até leres a linha toda. Por isso é melhor recolher a informação até à vírgula depois de leres a linha toda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta o seguinte...

#include <stdio.h>

int main()
{
    FILE *fp;
    char ch[100]; /*100 é o tamanho máximo da frase até à vírgula... Podes alterar. */
    int i = 0;
    fp = fopen("nomefich", "r"); /* Verifica os erros! */
    while((ch[i] = fgetc(fp)) != ',')
        i++;
    puts(ch);
    fclose(fp);
    return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Queres até uma vírgula, mas não tens forma de saber onde está a vírgula até leres a linha toda.

penso que o fscanf permite ler apenas até à vírgula (pelo menos só devolve essa parte da string, se lê a linha toda ou não já não sei).

FILE* file=fopen(...);
char str[100];
fscanf(file,"%[^,]",str);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

num ficheiro txt tenho:

antonio luis,policia,16

quero ler até a virgula e atribuir as informações a variavies, fiz isto:

for(i=0;fscanf(fp1,"%s[^,]%s[^,]%d[^\n]",nome,profição,idade)!=EOF;i++)

o problema e que a variavel nome fica associada a frase completa, ou seja nome=antonio luis,policia,16. e eu queria que nome fica-se atribuido a antonio luis.alguma sugestão?

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