• 0
Sign in to follow this  
Guest Fabiano Góes

Leitura de arquivo TXT

Question

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.

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this