Ir ao conteúdo
  • Cadastre-se

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


aender

Posts recomendados

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 !!!

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...