Olá. Então... eu estava criando um programa para calcular a média de notas do usuário...
[code=C]
#include
#include
#include
#include
int main (void) {
int verify = 0;
int number_soma, number_nota, media, new_nota;
char user_name[500];
char cmd[500];
FILE *arq = fopen ("login.txt", "r");
if (!arq) {
printf ("\nHello. Sua primeira vez no programa ?\nEscreva seu nome : "); scanf ("%s", &user_name);
arq = fopen ("login.txt", "w");
fprintf (arq, "%s", user_name);
fclose (arq);
printf ("\nClique em alguma tecla para iniciar o programa..."); getch();
system ("cls || clear");
} else {
fscanf (arq, "%s", user_name);
fclose (arq);
}
arq = fopen ("somaNota.txt", "r");
if (!arq) {
verify = 1;
} else {
fscanf (arq, "%d", number_soma);
fclose (arq);
arq = fopen ("numeroNota.txt", "r");
if (!arq) {
verify = 2;
} else {
fscanf (arq, "%d", number_nota);
fclose (arq);
}
}
do {
printf ("\nHello %s.\nEscreva um comando : ", user_name); scanf ("%s", &cmd);
if (strcmp(cmd, "ver")==0) {
if (verify == 1 || verify == 2) {
printf ("\nErro Dx7%d.", verify);
} else {
media = number_soma / number_nota;
printf ("\nA sua media atual : %d", media);
}
}
if (strcmp(cmd, "add")==0) {
printf ("\nNota para adicionar e tirar a media : "); scanf ("%d", &new_nota);
++number_nota;
number_soma = number_soma + new_nota;
media = number_soma / number_nota;
arq = fopen ("somaNota.txt", "w");
fprintf (arq, "%d", number_soma);
fclose (arq);
arq = fopen ("numeroNota.txt", "w");
fprintf (arq, "%d", number_nota);
fclose (arq);
printf ("\nNota adicionada com suscesso. Nova media : %d", media);
}
} while (1);
return (0);
}
[/code]
Porém ele cria os arquivos txt com valores absurdos ( menos o login.txt ). Se eu tivesse que chutar o problema, eu falaria "Ponteiros"...
Enfim, é por causa dos ponteiros ? Como arrumar isso ? Obrigado pela atenção =D.
Boutrik
Membro Junior
Registrado
72 Mensagens
26 Curtidas
Problema em C
#1 Por Boutrik
03/11/2015 - 19:53