Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
aender

Como ler um arquivo de strings separadas por tabulação em linguagem C

Recommended Posts

Pessoal tudo bem ?

Estou com uma dúvida aqui, já trabalhei com arquivos em c mas somente manipulação de inteiros .Meu problema é o seguinte, tenho que ler um arquivo txt de registros , estes estão separados por tabulação , a primeira linha do arquico é do tipo : 1 00002house.info 2 0009bo70.com 3 000fp502pfls0kox7.com , esses registros que começam pelo numero , estão na mesma linha e separados por tabulação , o arquivo tem várias linhas.Fiz um código para leitura mas ele só imprime o primeiro registro , ou seja ,não está lendo depois do tab .Segue o link para baixar o arquivo txt que estou usando para leitura : http://www.4shared.com/office/IykWLNTL/dados.html



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

FILE*arquivo;
char string[80];

int main()
{
arquivo=fopen("dados.txt","r");
fgets(string, 79, arquivo);
printf("%s\n",string);
system("pause");
}

Desde já, obrigado pessoal !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

while(!feof(garotas))          //Enquanto não for final do arquivo garotas.
{
fscanf(garotas, "%s", &banco.nome); //le o txt e armazena a primeira string em banco.nome
for(i=0;banco.nome[i]!='\0'; i++) //enquanto não terminar a string
if(banco.nome[i]=='_') //Verifica se a o caracter '_'
banco.nome[i]=' '; //e substitui por ' ', que é espaço.

fscanf(garotas, "%s", &banco.status);

fscanf(garotas, "%s", &banco.corcabelo);
for(i=0; banco.corcabelo[i]!='\0';i++)
if (banco.corcabelo[i]== '_')
banco.corcabelo[i]=' ';

fscanf(garotas, "%s", &banco.cor_olho);
for(i=0; banco.cor_olho[i]!='\0';i++)
if (banco.cor_olho[i]== '_')
banco.cor_olho[i]=' ';

fscanf(garotas, "%f", &banco.valor_hora);

if (banco.corcabelo[0] == cabelo) //Lembrem-se que a variavel cabelo, olho e status
if (banco.cor_olho[6] == olho) //são caracteres e tem apenas uma letra cada
if (banco.status == status) //então comparo apenas a primeira letra de cada
{ //e verifico se são iguais.
//no caso do olho comparo a 6 string que pode ser 'C' = claro
//ou pode ser 'E' = escuro
printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
n_garotas++; //contador de registros
}
//Esse processo será repitido até o final do arquivo, graças ao laço while(!feof(garotas))

}

De uma olhada nesse código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×