scanf("%d",&p[pos-1].senha);
scanf("%s",p[pos-1].senha);
while(p[pos-1].codigo!='\0')
pos++;
p[pos-1].codigo=(pos+5);
#include "rotinas.h"
int main(int argc, char *argv[])
{
int cod,s,aux,error;
CADASTRO cadastro[CODIGO_MAX];
inicializa();
for(;;)
{
switch(opcoes())
{
case 1:
error = novo_cadastro(&cadastro);
if(error == 1)
printf("\nMemoria cheia!\n\n");
else
printf("\nCadastrado com sucesso!\n\n");
break;
case 2:
entrada();
break;
case 3:
saida();
break;
case 4:
exit(1);
break;
default:
printf("Opcão invalida!\n\n");
}
}
system("PAUSE");
return 0;
}
#include "rotinas.h"
void inicializa()
{
//Tudo que precisa ser inicializado, coloca aqui
posi = 0;
}
int opcoes (void)
{
int aux;
printf("Digite uma das opcoes abaixo\n");
printf("1 - Cadastro\n");
printf("2 - Entrada\n");
printf("3 - Saida\n");
printf("4 - Sair\n");
printf("Opcao: ");
scanf("%d",&aux);
return aux;
}
int novo_cadastro(CADASTRO *p)
{
if( posi == CODIGO_MAX)
{
return 1; //Deu erro! Memoria Cheia!!!
}
else
{
do
{
int i;
printf("\nEntre com sua senha (0 a 15): ");
scanf("%b",&i);
p[posi].senha = i & 0x04; //Pegando apenas os 4 ultimos bits;
if(p[posi].senha < 0 || p[posi].senha > 15)
{
printf("\nSenha invalida\n");
}
else
{
posi++;
return 0; //Pegou a senha corretamente e retorna sem erros!
}
}while(1);
}
}
void entrada()
{
//PARA FAZER
}
void saida()
{
//PARA FAZER
}
#include <stdio.h>
#include <stdlib.h>
#define CODIGO_MAX 4
typedef struct
{
unsigned int presente : 1;
unsigned int liberado : 1;
unsigned int senha : 4;
}CADASTRO;
int novo_cadastro(CADASTRO *p);
int opcoes (void);
void entrada();
void saida();
void inicializa();
int posi;
bfccardoso escreveu:Vc já tentou a solução que o marcelo apresentou?
De colocar um & na linha que está dando erro?
sim, já tentei, mas aí o compilador da um erro dizendo que eu não posso ter um endereço de um campo de bit.
int lalala;
scanf("%d",&lalala);
valor.bitfield_doido = lalala;
bfccardoso escreveu:joao,
valeu cara, fico te devendo essa!
comecei a estudar C na segunda-feira desta semana, já tinha visto antes mas muito pouco, e como vou ter que trabalhar profissionalmente com ele agora fazendo softwares embarcados, peguei o livro C Completo e Total e não estudo menos 10 horas por dia.
Como as memórias dos microcontroladores não são grande coisa, tenho que trabalhar muito com bit's.
Obrigado mais uma vez!
Abraços.
Voltar para Visual C++/C/C++/C#
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante