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