I've been making a "contact List" where a get some informations like city, state, country, etc. But when after a get all those values from the user, the "cidade" field goes blank sometimes, if a just put characters in the other fields, "cidade" goes as it should be.
estruturas.cpp //My structures
typedef struct{
char logradouro[100];
char numero[5];
char bairro[100];
char cep[9];
char cidade[100];
char estado[100];
char pais[100];
}endereco;
typedef struct{
int codRegistro;
char nome[100];
char numero01[13];
char numero02[13];
endereco end;
}contato;
funcoes.cpp //My Functions
void verificarAberturaDeArquivo(FILE *file){
if(file == NULL) {
printf("Erro ao Abrir o Arquivo!");
}
}
int numeroDeContatos(){
int totalContatos;
FILE *count = fopen("count.txt", "r+");
verificarAberturaDeArquivo(count);
fscanf(count, "%d", &totalContatos);
fclose(count);
return totalContatos;
}
void incrementoNumeroDeContatos(int totalContatos){
FILE *count = fopen("count.txt", "w+");
verificarAberturaDeArquivo(count);
totalContatos++;
fprintf(count, "%d", totalContatos);
fclose(count);
}
// !Nao Pega o Nome da Cidade quando a informaçao é coletada junto a outros dados, somente é pega quando isolada.
void novoContato(FILE *agenda, contato *lista){
printf("Nome: ");
fflush(stdin);
gets(lista -> nome);
printf("Numero de Contato 01: ");
fflush(stdin);
gets(lista -> numero01);
char op;
do{
printf("Deseja Adicionar um segundo numero para contato ?(y/n) ");
fflush(stdin);
op = getchar();
if(op == 'y' || op == 'Y'){
printf("Numero de Contato 02: ");
fflush(stdin);
gets(lista ->numero02);
}
else if(op == 'n' || op == 'N')
break;
else{
printf("Insira um Valor Valido!!!\n");
}
}while(op != 'y' && op != 'Y' && op != 'n' && op != 'N');
printf("Logradouro: ");
fflush(stdin);
gets(lista -> end.logradouro);
printf("Pais: ");
fflush(stdin);
gets(lista -> end.pais);
printf("Estado: ");
fflush(stdin);
gets(lista -> end.estado);
printf("Cidade: ");
fflush(stdin);
gets(lista -> end.cidade);
//printf("!!!!!!!!!!!! %s", lista->end.cidade);
printf("Bairro: ");
fflush(stdin);
gets(lista -> end.bairro);
printf("Numero: ");
fflush(stdin);
gets(lista->end.numero);
printf("CEP: ");
fflush(stdin);
gets(lista -> end.cep);
int totalContatos = numeroDeContatos();
lista->codRegistro = totalContatos + 1;
incrementoNumeroDeContatos(totalContatos);
//Salva os Dados Da estrutura no arquivo.
agenda = fopen("agenda.txt", "a");
verificarAberturaDeArquivo(agenda);
fprintf(agenda, "%d\n" ,lista->codRegistro);
fprintf(agenda, "%s\n", lista->nome);
fprintf(agenda, "%s\n", lista->numero01);
fprintf(agenda, "%s\n", lista->numero02);
fprintf(agenda, "%s\n", lista->end.pais);
fprintf(agenda, "%s\n", lista->end.estado);
fprintf(agenda, "%s\n", lista->end.cidade);
fprintf(agenda, "%s\n", lista->end.bairro);
fprintf(agenda, "%s\n", lista->end.logradouro);
fprintf(agenda, "%s\n", lista->end.numero);
fprintf(agenda, "%s\n", lista->end.cep);
fclose(agenda);
}
Main.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "estruturas.cpp"
#include "funcoes.cpp"
int main(){
FILE *fp;
contato lista;
memset(&lista, 0, sizeof lista);
novoContato(fp, &lista);
}
I'be been trying to solve this for almost one hour, and nothing...