Ir para conteúdo
Fórum Script Brasil
  • 0

Como Importar Dados De Um Arquivo Txt ?


Rafael F.

Pergunta

E ai pessoal...

tenho um trabalho de estatistica pra fazer em C++. E neste trabalho eu preciso ler os dados de um arquivo txt, para fazer os calculos necessarios.

o exercicio pede dessa maneira:

"O programa deverá ler um arquivo texto com duas colunas, sendo que a primeira coluna contém os dados da variável Y

e a segunda coluna contém os dados da variável X. Procure deixar o seu programa bem flexível (ou seja, ele deverá ler

o arquivo texto com qualquer quantidade de linhas e aceitar valores negativos, inclusive o valor zero)."

o arquivo tem essa "formatação":

as duas colunas separadas por espaço

86,0 1,83

49,2 1,57

84,0 1,85

54,5 1,60

52,5 1,68

58,5 1,65

87,0 1,73

68,5 1,78

55,0 1,58

58,0 1,64

59,0 1,65

52,0 1,61

60,5 1,60

47,0 1,64

Eu procurei no forum algo que pudesse me ajudar mas não achei....

Se possivel, eu gostaria que alguém me ajudasse pois, não tenho ideia de como importar esses dados,

achei no tópico algo sobre a biblioteca dirent.h mas parece que ela so percorre o diretorio.

Desde já agradeço!

abraço!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Tinha um código quase pronto, então lá vai:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *arq;
    //Quantidade de linhas (pode servir pra algum calculo estatistico)
    int quant=0;
    //Tamanho de caracteres encontrados em uma linha (chute)
    char linha[50];

    //Não foi feito aqui aquele teste pra saber se o arquivo foi lido corretamente (não precisei)
    arq = fopen("dados.txt", "r");
    
    //Enquanto não alcançar o fim do arquivo, faça o seguinte linha por linha:
    while(fgets(linha, sizeof(linha), arq) ) {
        quant++;
        //Imprima o dado da primeira coluna
        printf("Y[%d] = %lf\t",quant, atof(strtok(linha, " ")));
        //Imprima o dado da segunda coluna
        printf("X[%d] = %lf\n",quant, atof(strtok(NULL, " ")));
    }
    fclose(arq);
    
    system("pause");
    
    return 0;
}

OBS.: Os números do arquivo devem estar com ponto (.) e não com vírgula (,).

Veja mais detalhes sobre as funções: atof, strtok, fopen, fgets

A função fopen, no exemplo, está lendo o arquivo dados.txt, mas você poderia usar uma variável, passada pelo usuário.

Flws!

Link para o comentário
Compartilhar em outros sites

  • 0

E ai cara vlw pelo codigo mas tipo assim...

eu qbrei a cabeça no feriadao tentando fazer isso...

O codigo que você me passou não ta rodando..... Eu uso o Builder 4, consegui rodar ele no Dev mas rodou uma vez só....

ta dando erro no while, mas isso acho q da pra resolver....

queria pedir se tem jeito de me explicar como q eu posso atribuir os dados do arquivo em uma varialvel no caso tem q ser um

vetor....

//Enquanto não alcançar o fim do arquivo, faça o seguinte linha por linha:
    while(fgets(linha, sizeof(linha), arq) ) {
        
       
        linha[quant] = atof(strtok(linha, " ");
        
        linha2[quant] = atof(strtok(NULL, " ");
        quant++;    
}

será que eu posso fazer tipo isso ai em cima????

vlww

abraço!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Voce pode criar dois vetores float, por exemplo x, y.

Ai implemente seu código.

//Enquanto não alcançar o fim do arquivo, faça o seguinte linha por linha:
    while(fgets(linha, sizeof(linha), arq) ) {
        x[quant] = atof(strtok(linha, " ");
        y[quant] = atof(strtok(NULL, " ");
        quant++;    
}

Tenho dúvidas se y receberá corretamente os dados, teste isso.

Talvéz seja necessário colocar um \n nos tokens.

Link para o comentário
Compartilhar em outros sites

  • 0

E ae pessoal bele

estou com uma duvida parecida perem ao invés de importar dados(numero)

gostaria q fossen importados perguntas e alternarivas

pra um jogo de perguntas e respostas

uma de cada vez

assim depois q o usuário respondesse a pergunta apareceria outra

alguém poderia me ajudar ae

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Exemplo:

Formate o arquivo e use essa informacão para buscar o que precisa.

Meu arquivo deve conter 1 pergunta e 4 alternativas.

Leia cinco linhas:

- Pergunta

1. alternativa

2. alternativa

3. alternativa

4. alternativa

voce pode usar o fgets

for (i=0; i<5; i++){
   fgets(linha, sizeof(linha), arq);
   printf("%s",linha);
}

Pronto, assim já vai estar na tela.

Logo em seguinda leia a resposta do cara.

Isso pode ser colocado num loop até encontrar o EOF "fim de arquivo".

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...