Ir ao conteúdo

como contar as informacoes inseridas


james freire

Posts recomendados

Postado

fala ai galera,

tenho um codigo fonte de registro de pessoas.

gostaria de saber como fazer para contar quantas pessoas foram registradas, no momenoto, tenho que contar na tela com o dedo.

valeu galera!!!!!

#include <stdio.h>

int main()

{

int opções;

char nome[18];

char idade[30];

char sexo[30];

char texto[50];

char *entradadenome = { "Nome: " };

char *entradadeidade = { "idade: " };

char *entradadesexo = { "sexo: " };

FILE *file_ptr;

file_ptr = fopen("endereco.dados", "a");

if(file_ptr != NULL)

{

printf("opções DISPONIVEIS: \n");

printf(" \n");

printf("1. Novo aluno. \n");

printf("2. Alunos registrados. \n");

printf("3. Deletar todos registros. \n\n");

printf("escolha uma opcao: ");

scanf("%d", &opções);

fclose(file_ptr);

}

if(opções == 1)

{

file_ptr = fopen("endereco.dados", "a");

if(file_ptr != NULL)

{

printf("\nPor favor, informe seu nome : ");

fputs(entradadenome, file_ptr);

fflush(stdin);

fgets(nome, 10, stdin);

fputs(nome, file_ptr);

printf("\nPor favor, Masculino/Femenino : ");

fputs(entradadesexo, file_ptr);

fflush(stdin);

fgets(sexo, 10, stdin);

fputs(sexo, file_ptr);

printf("\nPor favor, informe sua idade : ");

fputs(entradadeidade, file_ptr);

fflush(stdin);

fgets(idade, 10, stdin);

fputs(idade, file_ptr);

printf("\nInformacoes salvas, Obrigado! \n");

system("pause");

}

}

else if(opções== 2)

{

file_ptr = fopen("endereco.dados", "r");

if(file_ptr != NULL)

{

system("cls");

while(fgets(texto, 50, file_ptr) != NULL)

{

printf(" %s", texto);

}

printf("\n Fim do arquivo \n\n");

system("Pause");

fclose(file_ptr);

}

}

else if(opções == 3)

{

system("del endereco.dados");

printf("Todos registros deletados \n");

system("Pause");

}

else

return 0;

}

Postado

precisa-se contar quantas quebras de linhas existem no buffer lido do arquivo.

Como existem 3 valores para cada registro, é só dividir o total de quebras de linhas por 3.

Assim:


int totallinhas = 0;

[...]

if ( opções == 2 )
{
file_ptr = fopen("endereco.dados", "r");
if ( file_ptr != NULL )
{
system("cls");

while ( fgets( texto, 50, file_ptr ) != NULL)
{
i = 0;
while ( i <= strlen(texto) )
{

if ( texto[i] == '\n' )
totallinhas++;

i++;
}
printf(" %s", texto);

}
totallinhas++; // referente ao "eof"

printf("Total de registros: %d\n", totallinhas / 3 );
printf("\n Fim do arquivo \n\n");
system("Pause");
fclose(file_ptr);
}
}

Postado

fala ai ScreenBlack, beleza???

olha so. eu inseri a parte que voce mandou, mas esta dando erro

na linha do i = 0;

sei que tenho que informar ela la no inicio do programa mas nao sei como.

so mais essa, prometo nao encher o saco.

valeu

olha o codigo inteiro aqui.

#include <stdio.h>

#include <stdlib.h>

int main()

{

int opções;

char nome[18];

char idade[30];

char sexo[30];

char texto[50];

char *entradadenome = { "Nome: " };

char *entradadeidade = { "idade: " };

char *entradadesexo = { "sexo: " };

FILE *file_ptr;

file_ptr = fopen("endereco.dados", "a");

if(file_ptr != NULL)

{

printf("opções DISPONIVEIS: \n");

printf(" \n");

printf("1. Novo aluno. \n");

printf("2. Alunos registrados. \n");

printf("3. Deletar todos registros. \n\n");

printf("escolha uma opcao: ");

scanf("%d", &opções);

fclose(file_ptr);

}

if(opções == 1)

{

file_ptr = fopen("endereco.dados", "a");

if(file_ptr != NULL)

{

printf("\nPor favor, informe seu nome : ");

fputs(entradadenome, file_ptr);

fflush(stdin);

fgets(nome, 10, stdin);

fputs(nome, file_ptr);

printf("\nPor favor, Masculino/Femenino : ");

fputs(entradadesexo, file_ptr);

fflush(stdin);

fgets(sexo, 10, stdin);

fputs(sexo, file_ptr);

printf("\nPor favor, informe sua idade : ");

fputs(entradadeidade, file_ptr);

fflush(stdin);

fgets(idade, 10, stdin);

fputs(idade, file_ptr);

printf("\nInformacoes salvas, Obrigado! \n");

system("pause");

}

}

else if(opções== 2)

{

file_ptr = fopen("endereco.dados", "r");

if(file_ptr != NULL)

{

system("cls");

while(fgets(texto, 50, file_ptr) != NULL)

{

i = 0;

while ( i <= strlen(texto) )

{

if ( texto == '\n' )

totallinhas++;

i++;

}

printf(" %s", texto)

}

totallinhas++; // referente ao "eof"

printf("Total de registros: %d\n", totallinhas / 3 );

printf("\n Fim do arquivo \n\n");

system("Pause");

fclose(file_ptr);

}

}

else if(opções == 3)

{

system("del endereco.dados");

printf("Todos registros deletados \n");

system("Pause");

}

else

return 0;

}

Postado

fala ai ScreenBlack

ja esta rodando, mas esta registrando um muito diferente do que esta realmente registrado.

olha o codigo abaixo!!!!

valeu

#include <stdio.h>

#include <stdlib.h>

#include <iostream>

int main()

{

int opções,i,totallinhas;

char nome[18];

char idade[30];

char sexo[30];

char texto[50];

char *entradadenome = { "Nome: " };

char *entradadeidade = { "idade: " };

char *entradadesexo = { "sexo: " };

FILE *file_ptr;

file_ptr = fopen("endereco.dados", "a");

if(file_ptr != NULL)

{

printf("opções DISPONIVEIS: \n");

printf(" \n");

printf("1. Novo aluno. \n");

printf("2. Alunos registrados. \n");

printf("3. Deletar todos registros. \n\n");

printf("escolha uma opcao: ");

scanf("%d", &opções);

fclose(file_ptr);

}

if(opções == 1)

{

file_ptr = fopen("endereco.dados", "a");

if(file_ptr != NULL)

{

printf("\nPor favor, informe seu nome : ");

fputs(entradadenome, file_ptr);

fflush(stdin);

fgets(nome, 10, stdin);

fputs(nome, file_ptr);

printf("\nPor favor, Masculino/Femenino : ");

fputs(entradadesexo, file_ptr);

fflush(stdin);

fgets(sexo, 10, stdin);

fputs(sexo, file_ptr);

printf("\nPor favor, informe sua idade : ");

fputs(entradadeidade, file_ptr);

fflush(stdin);

fgets(idade, 10, stdin);

fputs(idade, file_ptr);

printf("\nInformacoes salvas, Obrigado! \n");

system("pause");

}

}

else if(opções== 2)

{

file_ptr = fopen("endereco.dados", "r");

if(file_ptr != NULL)

{

system("cls");

while(fgets(texto, 50, file_ptr) != NULL)

{

i = 0;

while ( i <= strlen(texto) )

{

if ( texto== '\n' );

totallinhas++;

i++;

}

printf(" %s", texto);

}

totallinhas++; // referente ao "eof"

printf("Total de registros: %d\n", totallinhas /2 );

printf("\n Fim do arquivo \n\n");

system("Pause");

fclose(file_ptr);

}

}

else if(opções == 3)

{

system("del endereco.dados");

printf("Todos registros deletados \n");

system("Pause");

}

else

return 0;

}

Postado

Segue o código que eu usei para correção:


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

int main()
{

int opções, i, totallinhas = 0;
char nome[18];
char idade[30];
char sexo[30];
char texto[50];
char *entradadenome = { "Nome: " };
char *entradadeidade = { "idade: " };
char *entradadesexo = { "sexo: " };
FILE *file_ptr;

file_ptr = fopen("endereco.dados", "a");
if(file_ptr != NULL)
{
printf("opções DISPONIVEIS: \n");
printf(" \n");
printf("1. Novo aluno. \n");
printf("2. Alunos registrados. \n");
printf("3. Deletar todos registros. \n\n");
printf("escolha uma opcao: ");
scanf("%d", &opções);
fclose(file_ptr);

}

if ( opções == 1 )
{

file_ptr = fopen("endereco.dados", "a");

if ( file_ptr != NULL )
{

printf("\nPor favor, informe seu nome : ");
fputs(entradadenome, file_ptr);
fflush(stdin);
fgets(nome, 20, stdin);
fputs(nome, file_ptr);

printf("\nPor favor, Masculino/Femenino : ");
fputs(entradadesexo, file_ptr);
fflush(stdin);
fgets(sexo, 20, stdin);
fputs(sexo, file_ptr);

printf("\nPor favor, informe sua idade : ");
fputs(entradadeidade, file_ptr);
fflush(stdin);
fgets(idade, 20, stdin);
fputs(idade, file_ptr);

printf("\nInformacoes salvas, Obrigado! \n");

system("pause");

}

}
else
if ( opções == 2 )
{
file_ptr = fopen("endereco.dados", "r");
if ( file_ptr != NULL )
{
system("cls");

while ( fgets( texto, 50, file_ptr ) != NULL)
{
i = 0;
while ( i <= strlen(texto) )
{

if ( texto[i] == '\n' )
totallinhas++;

i++;
}
printf(" %s", texto);

}
totallinhas++;

printf("Total de registros: %d\n", totallinhas / 3 );
printf("\n Fim do arquivo \n\n");
system("Pause");
fclose(file_ptr);
}
}
else
if ( opções == 3 )
{

system("del endereco.dados");
printf("Todos registros deletados \n");
system("Pause");
}
else
return 0;

return 0;

}

Agora é só comparar com o seu, e ver o que há de diferente.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!