Bem pessoal o problema é o seguinte, estou armazenando os arquivos em txt so que quando vou ler os arquivos para consultar tenho um problema:
por exemplo reservo um espaço de 20 caracteres para o sobrenome, mas quando o usuario digita o sobrenome e ele não preenche os 20 caracteres na hora de imprimir isso na tela ele puxa uma parte do proximo (no meu caso seria a data de nascimento) para preencher o espaço reservado
alguém pode me ajudar a resolver isso ?
abraços
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <conio.h>
void consulta (char pesq[])
{
FILE *arquivo;
char curs[50];
char sobren[30],sex[10];
int datan[12], existe=0;
arquivo = fopen ("arquivo1.txt", "r");
while ((fscanf(arquivo,"%s", curs))!=EOF)
if (!strcmp(curs,pesq))
{
printf("\nNome: %s", curs);
fgets(sobren,30,arquivo);
printf("\nSobrenome: %s", sobren);
fscanf(arquivo,"%s", &datan);
printf("\nData de Nascimento: %s", &datan);
fscanf(arquivo,"%s", &sex);
printf("\nSexo: %s", &sex);
fscanf(arquivo,"\n");//pula uma linha no arquivo
existe=1;//
}//if
else fscanf(arquivo, "\n\n\n\n");
if (existe==0) printf("Cadastro Inexistente!\n");
getchar();
fclose(arquivo);
}//função consulta
int main (void)
{
FILE *arquivo;
int menu,i;
char nome[15], sobren[50], sex[10];
int datan[12];
while (menu != 4){
system("cls");
printf("\n\tHOTEL\n");
printf("\n\t1 - Cadastrar Hospede.");
printf("\n\t2 - Consultar Hospede.");
printf("\n\t3 - Listar Nome dos Hospedes.");
printf("\n\t4 - \tSair.");
printf("\n\nOpcao:");
scanf("%d",&menu);
getchar();
switch (menu){
case 1: {
printf("\nNome: ");
gets(nome);//ARMAZENA A VARIAVEL INTEIRA UZAR SEMPRE
printf("\nSobrenome: ");
gets(sobren);
fflush(stdin);
printf("\nData de Nascimento: ");
scanf("%s", &datan);
printf("\nSexo: ");
scanf("%s",&sex);
getchar();
arquivo = fopen ("arquivo1.txt", "a+");
fprintf(arquivo, "%s ", nome);
fprintf(arquivo, "%s", sobren);
fprintf(arquivo, " %s ", datan);
fprintf(arquivo, "%s\n", sex);
printf("\n Dados Registrados com Sucesso!\n");
fclose(arquivo);
getchar();
system ("cls");
}//case 1
break;
case 2: {
printf("\n\t\t.::.Consulta por Nome.::.");
printf("\n\nDigite o nome:");
gets(nome);
consulta(nome);
}//case 2
break;
}//switch
}//while menu
system("pause");
}
Pergunta
diego bocao
Bem pessoal o problema é o seguinte, estou armazenando os arquivos em txt so que quando vou ler os arquivos para consultar tenho um problema:
por exemplo reservo um espaço de 20 caracteres para o sobrenome, mas quando o usuario digita o sobrenome e ele não preenche os 20 caracteres na hora de imprimir isso na tela ele puxa uma parte do proximo (no meu caso seria a data de nascimento) para preencher o espaço reservado
alguém pode me ajudar a resolver isso ?
abraços
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.