Criei um programa simples em linguagem C de inclusão de dados com chave primária:
#include<conio.c>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
FILE *arquivinho;
struct pessoa
{
int codigo;
char nome[50];
}alguem;
main()
{
int chave;
if( (arquivinho=fopen("arquivinho.bin","ab+"))==NULL)
printf("\n\nERRO NA ABERTURA DO ARQUIVO");
else
printf("\n\nABERTURA DE ARQUIVO COM SUCESSO");
fflush(stdin);
printf("\n\nDigite seu nome\t");
gets(alguem.nome);
int teste;
do
{
teste=0;
rewind(arquivinho);
printf("\n\n Chave primaria: ");
scanf("%d",&chave);
while((fread(&alguem,sizeof(alguem),1,arquivinho)==1) && alguem.codigo!=chave);
if(alguem.codigo==chave)
{
fflush(stdin);
printf("\n\nCodigo ja cadastrado");
getch();
teste=1;
}
else
printf("\n\nCodigo nao cadastrado");
}while(teste==1);
if(fwrite(&alguem,sizeof(alguem),1,arquivinho)!=1)
printf("\n\nERRO NA ESCRITA DO ARQUIVO");
else
{
printf("\n\nDados salvos com sucesso");
fflush(arquivinho);
}
fflush(stdin);
getch();
fclose(arquivinho);
printf("\n\nalguem codigo %d\t",alguem.codigo);
printf("\n\nauxiliar %d\t",chave);
alguem.codigo=chave;
printf("\n\nalguem codigo %d\t",alguem.codigo);
printf("\n\nauxiliar %d\t",chave);
}
Porém meu File não está salvando código em int, o que significa que minha chave primária não está funcionando. Não sei se o problema está na parte de salvar ou na parte de ler.
Toda forma de ajuda será bem vinda.
Desde já agradeço.