Ir para conteúdo
Fórum Script Brasil
  • 0

Manipulação de txt


Jock

Pergunta

Boa tarde, estou tentando desenvolver um programa que gera 3000 nomes e telefones aleatórios e salva essas informações para um txt. Até ai tudo bem, mas na proxima etapa deve ser feita uma listagem dos registros pela primeira letra do campo nome. Como pode ser feito essa etapa?

Segue o código atual:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>

//Criação da struct que unirá nome e numero

struct reg{

char nome[80];

long int numero;

};

typedef struct reg Reg;

Reg novo;

void nameGenerator()

{

char consoante[] = {"BCDFGHJKLMNPRSTV"}, vogal[] = {"AEIOU"}, snome[80];

int i, letra, tam, cont;

//geração do primeiro nome

tam = rand()%7+4;

for(i=0; i<tam; i++)

{

if(i%2==0)

novo.nome=consoante[rand()%16];

else

novo.nome=vogal[rand()%4];

}

novo.nome=' ';

novo.nome[i+1]='';

//geração do segundo nome

tam = rand()%7+4;

for(i=0; i<tam; i++)

{

if(i%2==0)

snome=consoante[rand()%16];

else

snome=vogal[rand()%4];

}

snome='';

strcat(novo.nome, snome);

}

void numberGenerator()

{

novo.numero=rand()%1990000+8999999;

}

void listar()

{

FILE *press;

press = fopen("saida.txt", "w+");

//PARTE PROBLEMA

fclose(press);

}

void main()

{

srand (time(NULL));

int cont;

FILE *press;

press = fopen("saida.txt", "w+");

for(cont=0; cont<3000; cont++){

nameGenerator();

printf("%s\n", novo.nome);

fprintf(press, "%s\n", novo.nome);

numberGenerator();

printf("%d\n", novo.numero);

fprintf(press, "%d\n", novo.numero);

}

fclose(press);

system("pause");

}

Obrigado pela atenção!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Primeiro um comentário: na função listar, o arquivo deve ser aberto como "r" e não "w+". Deve ser erro do copiar e colar mas lembre de arrumar. :)

Sobre o problema: você precisa listar apenas os de determinada letra ou tem que ordenar alfabeticamente pela primeira letra?

Se for apenas exibir os que iniciam com determinada letra, carregue os dados do arquivo normalmente mas somente jogue na tela os que iniciarem com a letra que você quer.

Se tiver que ordenar, carregue tudo em um vetor e faça um loop para cada letra, exibindo apenas os com a letra da vez a cada ciclo. Assim evita ter que ordenar o vetor, o que ia demorar mais...

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...