problemas na leitura arquivo txt

1. problemas na leitura arquivo txt

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 26/10/2009 - 08:24h

Estou fazendo simulado em C, onde leio as questões do mesmo por meio de um arquivo txt, só que tem alguns problemas na leitura da string desse arquivo txt.
tipo retorna retorna a 1ª pergunta com as alternativas normal, mas a 2ª em diante fica embaralhado

Segue o código
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char p[200],r1[100],r2[100],r3[100],r4[100];
int rc,ruser,acertos,erros;
acertos=0; erros=0;
FILE *arq=NULL;
arq = fopen("teste.txt","r+");
if(arq == NULL)
{
perror("Erro na leitura do arquivo\n");
}
while(!feof(arq))
{
fgets(p,200,arq);
fgets(r1,100,arq);
fgets(r2,100,arq);
fgets(r3,100,arq);
fgets(r4,100,arq);
fscanf(arq,"%i",&rc);
printf("%s\n",p);
printf("\nA)%s",r1);
printf("\nB)%s",r2);
printf("\nC)%s",r3);
printf("\nD)%s",r4);
printf("\nresp:\n");
scanf("%i",&ruser);
if(ruser == rc)
acertos++;
else
erros++;
}
printf("%i acertos\n %i erros\n",acertos,erros);
fclose(arq);
return 0;
}


Então, onde estou cometendo erro na leitura do arquivo txt?



  


2. Resolvido

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 26/10/2009 - 17:01h

Resolvido
Segue o código
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char p[200],r1[100],r2[100],r3[100],r4[100];
int rc,ruser,acertos,erros;
acertos=0; erros=0;
FILE *arq=NULL;
arq = fopen("teste.txt","r+"); /*abre arquivo onde estão as perguntas*/
if(arq == NULL)
{
perror("Erro na leitura do arquivo\n");
}
while(!feof(arq))
{
fgets(p,200,arq); /*lê pergunta*/
fgets(r1,100,arq); /*lê alternativa 1*/
fgets(r2,100,arq); /*lê alternativa 2*/
fgets(r3,100,arq); /*lê alternativa 3*/
fgets(r4,100,arq); /*lê alternativa 4*/
fscanf(arq,"%i\n",&rc); /*lê alternativa correta*/
system("cls");
printf("%s",p);
printf("1)%s",r1);
printf("2)%s",r2);
printf("3)%s",r3);
printf("4)%s",r4);
do{
printf("resp:");
scanf("%i",&ruser); /*le a resposta do usuário*/
}while(ruser<1 || ruser>4); /*testa se digitado esta dentro do intervalo [1,4] */
if(ruser == rc) /*verifica se a resposta do usuário confere com a do arquivo txt(gabarito)*/
acertos++; /*se certo incrementa acertos*/
else
erros++; /*se errado incrementa erros*/
}
printf("%i acertos\n %i erros\n",acertos,erros);
fclose(arq); /*fecha o arquivo*/
return 0;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts