novato15 Postado Junho 13, 2010 Denunciar Share Postado Junho 13, 2010 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 ghjghjg1212121212121323222121 gjgjgh121324546465465454646545466546 ewrwerw46468798764646799799795644246 yiyiyiy64649766497669694654657879798798 pupiopquero 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel 27 Postado Junho 13, 2010 Denunciar Share Postado Junho 13, 2010 (editado) 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 Junho 13, 2010 por Gabriel 27 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 novato15 Postado Junho 15, 2010 Autor Denunciar Share Postado Junho 15, 2010 (editado) 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 Junho 15, 2010 por novato15 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mnemonic Postado Junho 15, 2010 Denunciar Share Postado Junho 15, 2010 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); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mvrocha Postado Junho 21, 2010 Denunciar Share Postado Junho 21, 2010 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 macentão leia a linha inteira e use o :ninja: strncpystrncpy(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 plataformastrncpy(strEscrita,strLeitura,8);//copiara os 8 primeiros caracteres da string de Leiturafprintf(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!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
novato15
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
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.