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

Leitura de arquivo TXT


Guest Fabiano Góes

Pergunta

Guest Fabiano Góes

por favor,

sou programador Delphi e estou começando a programar com c++,

estou com algumas duidas que fiaria muito grato se alguém puder me ajudar,

estou abrindo um arquivo .txt com um layout de 160 posições.

este arquivo tem 9426 linhas, porem com este código só consigo ler a primeira linha,

#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>

using namespace std;

int main(){

   char linha[160];
   ifstream leitura;
   leitura.open("237.txt", ofstream::binary);

   if(!leitura.is_open( ))
   {
      cout << "Não foi possível abrir arquivo!\n";
      leitura.clear( );
      getch();
   }

   system("cls");
   cout << "arquivo aberto com sucesso!!!\n\n";
   getch();
   
   while (leitura) 
   {
      leitura.getline(linha, 160);
      
      cout << linha << endl;
      getch();
   }

   leitura.close();  
   return 0;
}

alguém pode me dar uma dica de como percorrer o arquivo todo ?

toda dica será bem vinda.

desde já quero agradecer a todos.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Guest quitZAUMMM

veja esse link te ajudará bastante: Manipulação de arquivos txt

veja um simples exemplo q fiz para ler um txt:

char lertxt()
{
    FILE *p;
    char c;
    int x;
    if ((p = fopen("arq.txt","r")) == NULL)
    {
    printf("Erro! Impossivel abrir o arquivo!\n");
        exit(1);
    }
    c = getc(p);
    while (!feof(p))
    {
        printf("%c",c);
        c = getc(p);
    }
    printf("\n\n");
    fclose(p);
}

main(){
    lertxt();
    getch();
    return (0);
    }

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

quitZAUMMM,

primeiro obrigado pela atenção,

seu exemplo funcionou,

mais como estou estudando a manipulação de arquivos com c/c++ resolvi fazer mais um teste,

como o layout do arquivo que estou lendo é de 160 caracteres com espaços, quero ler linha por linha(char str[160]).

seguindo a dica do link que você me passou fiz um teste porem com este código ele está lendo apenas a primeira linha até que chega ao fim do arquivo, ou seja fica repedindo a mesma linha:

#include <iostream>
#include <conio.h>

using namespace std;

char lertxt()
{
    FILE *p;
    char str[160];
    int x;
    
    if ((p = fopen("237.TXT","r")) == NULL)
    {
       printf("Erro! Impossivel abrir o arquivo!\n");
       exit(1);
    }

    fscanf(p,"%[^\n]s", str);
    
    while (!feof(p))
    {
        fscanf(p,"%[^\n]s", str);
        cout << str << endl;
        getch();
    }
    
    printf("\n\n");
    fclose(p);
}

int main(){
    lertxt();
    getch();
    return (0);
    }

não sei se fui claro :unsure: , mais se você puder me dar uma dica agradeço!!! :D

Link para o comentário
Compartilhar em outros sites

  • 0
Guest quitZAUMMM

olha quando c le strings prefira o fgets, assim:

#include <stdio.h>
#include <conio.h>


char lertxt()
{
    FILE *p;
    char str[160];
    int x;

    if ((p = fopen("237.txt","r")) == NULL)
    {
       printf("Erro! Impossivel abrir o arquivo!\n");
       exit(1);
    }

    fgets(str,160,p);

    while (!feof(p))
    {
    printf("%s", str);
    fgets(str,160,p);
    }


    printf("\n\n");
    fclose(p);
}

int main(){
    lertxt();
    getch();
    return (0);
    }

espero ter ajudado;!!

[]'s

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,3k
×
×
  • Criar Novo...