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

pegar os 8 primeiro numero de um txt


novato15

Pergunta

ola pessoal, este é o meu primeiro post.

tenho uma duvida que a principio é facil mais não estou conseguindo resolve-la.

é o seguinte tenho um ficheiro .txt com varios numeros e quero pegar os 8 primeiros para escrever num outro txt.

para melhor esclarecimento um exemplo:

tenho um ficheiro A com:

6546545646545465465656546545 ghjghjg

1212121212121323222121 gjgjgh

121324546465465

454646545466546 ewrwerw

46468798764646

799799795644246 yiyiyiy

6464976649766969

4654657879798798 pupiop

quero pegar os 8 primeiros numeros para escrever no ficheiro B.

já tentei usar fgets mais sem sucesso, usei dessa forma:

fgets(variavel, 9, ficheiro);

pensei que fgets é para pegar string, e o fscanf(numero, "%d", &ficheiro) não permite colocar o numero de inteiro que desejamos pegar.

espero que compreendam a minha duvida e que me dêem uma força.

obrigado desde já e espero ter sorte na minha primeira duvida.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Use getc(). Com ela voce captura um caractere de cada vez. Aí é só incrementar um contador até oito no ciclo de leitura. Assim:

main()
{

int a;
char co,nome[8];

//resto do codigo....

a=0;
while(a<8)
   {
    co=getc(pont);//pont é substituído pelo nome do ponteiro do arquivo A: FILE *nome do ponteiro de arquivo;
    nome[a]=co;
    a++;
   }

//resto do codigo....

}

Depois é só colocar nome[8] no ficheiro B. Espero ter ajudado.

Editado por Gabriel 27
Link para o comentário
Compartilhar em outros sites

  • 0

obrigado gabriel 27 por ter respondido.

mas não funcionou porque pelo teste que eu fiz o getc() permite-nos pegar caracter. e eu preciso de pegar os 8 primeiros numeros, e por isso o getc() não funciona.

aguardo uma resposta.

Editado por novato15
Link para o comentário
Compartilhar em outros sites

  • 0

O programa enxerga o texto como uma string (um monte de caracter).

Então você pega eles com o getc() mesmo, no seu código você transforma eles de volta em número.

Existe a opção de usar o fscanf() e já transformar eles em número no momento da leitura, mas o getc é bem mais simples e rápido.

int c;
int temp[8];
arquivo = fopen(...);

for (x=0; x<8 && !feof(arquivo); x++) {
    c = getc(arquivo);
    temp[x] = c - 48;
}

fclose(arquivo);

Link para o comentário
Compartilhar em outros sites

  • 0

Fgets pega string é e o jeito que aconselho a todos usarem , pois strings permitem um tratamento de dados total.

Bem vamos ao problema pegar 8 numeros ( que são algarismos que tratarei como caracter ) isso nos leva a como usar fgets:

fgets( string , nm , arquivo)

A leitura se faz ate nm-1 continuado da mesma linha ate encontrar o caracter de fim de linha que depende da plataforma:

:wacko:

- \n\r para windows

- \n para unix

- \r para mac

então leia a linha inteira e use o :ninja: strncpy

strncpy(char* destino,char* origem ,size_t nrDeCaracterCopiados)

use:

fgets(strLeitura,n,meuArquivoLeitura);//garanta que n seja maior que a linha mais 3 caracteres para não haver preoblema em nenhuma plataforma

strncpy(strEscrita,strLeitura,8);//copiara os 8 primeiros caracteres da string de Leitura

fprintf(meuArquivoEscrta,"%s\n",strEscrita);//escreva no arquivo de saida , lembre-se que tem uma string de caracteres numericos e não um inteiro

Espero ter ajudado!!

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...