Logo Hardware.com.br
Boutrik
Boutrik Membro Junior Registrado
72 Mensagens 26 Curtidas

Problema em C

#1 Por Boutrik 03/11/2015 - 19:53
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.
Eliseu F A Jr
Eliseu F A J... Geek Registrado
776 Mensagens 354 Curtidas
#2 Por Eliseu F A J...
05/11/2015 - 08:18
Declare uma char para coverter e gravar os valores:
Converta os inteiros para char para poder gravar.

[php]...
char buffer [33];
...
itoa (inteiro,buffer,10);//// 10 decimal, 16 Hexadecimal, 2 binário
arq = fopen ("arquivo.txt", "w");
fprintf (arq, "%s", buffer);
fclose (arq);[/php]


Fonte de consulta
Boutrik
Boutrik Membro Junior Registrado
72 Mensagens 26 Curtidas
#3 Por Boutrik
05/11/2015 - 14:06
Eliseu F A Jr disse:
Declare uma char para coverter e gravar os valores:
Converta os inteiros para char para poder gravar.

[php]...
char buffer [33];
...
itoa (inteiro,buffer,10);//// 10 decimal, 16 Hexadecimal, 2 binário
arq = fopen ("arquivo.txt", "w");
fprintf (arq, "%s", buffer);
fclose (arq);[/php]


Fonte de consulta

Obrigado. Vou estudar um pouco mais dobre o "itoa". Vlw !!!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal