Logo Hardware.com.br
bamattos
bamattos Tô em todas Registrado
2.2K Mensagens 4 Curtidas

Linguagem C - Arquivos

#1 Por bamattos 16/11/2003 - 14:36
Alguem poderia me explicar o conteudo das linhas em vermelho?

#include
#include
#include
#include
struct aluno
{
char nome[50];
float a1, a2, media;
};
float media(float *a, float *b)
{
float c;
c = (*a + *b)/2;
return c;
}
int main()
{
clrscr();
int n,i,x;
struct aluno *ficha;
FILE *f;
f = fopen("boletim.dat", "w+");
printf("Quantos alunos deseja registrar: ");
scanf("%d", &n);
getchar();
ficha = (struct aluno*)malloc(n*sizeof(struct aluno));
for(i=0 ;i< n; i++)
{
printf("Informe o nome do aluno: ");
gets(ficha[i].nome);
printf("Informe a primeira nota do aluno: ");
scanf("%f", &ficha[i].a1);
printf("Informe a segunda nota do aluno: ");
scanf("%f", &ficha[i].a2);
_flushall();
}
for(i=0; i {
printf("\nNome do aluno: %s", ficha[i].nome);
printf("\nPrimeira nota do aluno: %.2f", ficha[i].a1);
printf("\nSegunda nota do aluno: %.2f", ficha[i].a2);
printf("\nMédia: %.2f", media(&ficha[i].a1,&ficha[i].a2));
}getch();

fwrite(&n, sizeof(int), 1, f);
fwrite(ficha, sizeof(struct aluno), n, f);
fclose(f);
free(ficha);
}

Valeu.
jqueiroz
jqueiroz Cyber Highlander Registrado
104K Mensagens 5.7K Curtidas
#7 Por jqueiroz
10/10/2005 - 18:19
Rafael, evite postar em tópicos muito antigos, pois pode ser que os participantes não estejam mais interessados no assunto, ou a informação não esteja mais disponível, além de ir contra nossas regras de conduta:

Regras de Conduta
18- Sobre o flooder:
a) Será caracterizado "flooder" o usuário persistente em postar mensagens nas quais não colaboram ou não contribuem de forma alguma no assunto tratado, da seguinte maneira:
- apenas confirmando uma afirmação anterior postada por outro usuário sem nada a acrescentar ou relatar sua experiência;
- simulando freqüentemente risadas, gozações e desvirtuando-se do assunto tratado no tópico;
- postar outra mensagem imediatamente seguida da própria postada, sem que outro usuário tenha postado nada, a título de aumentar o número de postagens sem editar a anterior.


b) Será considerado usuário "coveiro" aquele que resgatar um tópico em que:

- tomou-se por encerrado por já ter tirado a dúvida do usuário, exceto se a nova postagem for replicar dúvidas quanto à procedimentos não entendidos em cima do discutido;
- já ter sido encerrado a votação;
- postar mensagem obsoleta que nada contribui ao assunto;
- que não contribuem mais para a utilidade atual do fórum, ficando apenas como arquivo de sua postagem somente para consultas.


c) A denominação e aplicação de punições será feita pela Administração do fórum.

d) Será dada uma primeira advertência quando for caracterizado flooder ou coveiro;

e) Se houver insistência, as penas serão:
- Redução do número de mensagens do contador.
- Eliminação completa de todas as mensagens do contador
- Suspensão
- Banimento definitivo


f) Casos envolvendo usuários "coveiros", o respectivo tópico "desenterrado" será bloqueado e o usuário, notificado.
Caso persista, vale as mesmas regras para usuários "flooders".
"chmod 777 nunca ajudou ninguém" (c) 2002-2021 JQueiroz/FGdH
Conheça o Blog do Zekke
gaelcplusplus
gaelcplusplu... Novo Membro Registrado
2 Mensagens 0 Curtidas
#8 Por gaelcplusplu...
12/10/2005 - 11:23
Existe um erro em seu codigo.
Você nao está prevendo os valores limpos. Se o dummy do usuario entrar com valores invalidos, você terá de limpar isso.
Aqui vai uma torina que retira o caracter que voce desejar.

void RetiraCaracter(char * CCaracter, char * cString )
{
char cBufferAuxiliar[100];
int iTamanhoString = 0;
int iContador, iPosicao = 0;

memset( cBufferAuxiliar, '\0', sizeof(cBufferAuxiliar) );
iTamanhoString = strlen ( cString );

for ( iContador = 0; iContador < iTamanhoString; iContador++ )
{
if ( String[iContador] != CCaracter)
cBufferAuxiliar[iPosicao++] = cString[iContador];
}
strcpy( &cString[0], &cBufferAuxiliar[0] ); //Indique sempre o Adress Memory it's safety

return;
}
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal