Ir ao conteúdo

Ler numeros de arquivo txt


osvaldo182

Posts recomendados

Postado

Opa,

Preciso de uma ajuda com um programa que estou montando. Eu tenho um arquivo com números e preciso ler esses numeros para montar matrizes com eles. Ainda estou na primeira parte. Meu problema é o seguinte: eu consigo ler os numeros mas nao consigo saber se é um numero de 2 ou 3 ou 1 algarismo tipo:

arquivo: 12 3 52 4 9

meu codigo le char então ele nao consegue montar os numeros da forma como eles estão ali. alguem tem sugestoes do que fazer para eu obter os numeros da forma correta?

meu codigo segue abaixo


#include <stdlib.h>

int main(){
FILE *fp;
int i=0;
char d;
char c[100];
fp = fopen("c:\\teste.txt","r");
if (!fp){
printf(" Erro na abertura do arquivo");
exit(0);
system("PAUSE");
}
while((d = getc(fp)) != EOF){
printf("\n%c",d);
c[i]=d;
++i;
}

fclose(fp);
return 0;
}

#include <stdio.h>

Postado

Tenta separar os numeros do arquivo txt por linhas e manda seu programa ler por linha... ou então manda seu programa gravar o numero em uma posicao da matriz até encontrar espaço, e quando encontrar, trocar a posicao da matriz... (nao sei se deu pra entender =p)

até mais...

Tiago Massita

Postado

usar if(!fp) é quase pular em um buraco...dependendo do sistema gera erros de logicas incriveis...use if(fp==NULL)...(nao lembro se essa é a sintxe correta), mas é algo parecido...é muito mais confiavel e seguro

Postado

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

int main (void)
{
char buf[1024];
int numeros[4];

FILE *fp = fopen("arquivo.txt", "r");
if(fp == NULL)
return EXIT_FAILURE;

while(fgets(buf, sizeof(buf), fp)) {
if(buf[0] == '\n')
continue;

sscanf(buf, "%d %d %d %d", &numeros[0], &numeros[1], &numeros[2], &numeros[3]);
}

fclose(fp);
return EXIT_SUCCESS;
}

ae um exemplo :D

  • Membro VIP
Postado

Como você ta "puxando" como char,ele converterá os numeros para os caracteres ASC correspondentes a esses numeros ai.quando for fazer a gravaçao, coloque uns tokens para separar os numeros, algo como #,@,!(desde que nao sejam caracteres usados pelo compilador) e dps puxa como int(%d). Se quiser fazer algo + geral, puxa o conteudo para uma string(adiciona a biblioteca string.h) que tb vai dar certo.

Opa,

Preciso de uma ajuda com um programa que estou montando. Eu tenho um arquivo com números e preciso ler esses numeros para montar matrizes com eles. Ainda estou na primeira parte. Meu problema é o seguinte: eu consigo ler os numeros mas nao consigo saber se é um numero de 2 ou 3 ou 1 algarismo tipo:

arquivo: 12 3 52 4 9

meu codigo le char então ele nao consegue montar os numeros da forma como eles estão ali. alguem tem sugestoes do que fazer para eu obter os numeros da forma correta?

meu codigo segue abaixo


#include <stdlib.h>

int main(){
FILE *fp;
int i=0;
char d;
char c[100];
fp = fopen("c:\\teste.txt","r");
if (!fp){
printf(" Erro na abertura do arquivo");
exit(0);
system("PAUSE");
}
while((d = getc(fp)) != EOF){
printf("\n%c",d);
c[i]=d;
++i;
}

fclose(fp);
return 0;
}

#include <stdio.h>

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!