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

Ler .txt e mostrar conteúdo


PGPAB

Pergunta

Boa tarde, pessoal.

Preciso fazer um programa em C++ que leia um arquivo txt e mostre seu conteúdo na tela. O problema que estou tendo é que o usuário é que deve escrever o nome do arquivo do qual ele deseja ver o conteúdo.

Do jeito que está, o programa irá abrir sempre o mesmo arquivo "teste.txt" e isso não serve para mim. Eu quero ter vários arquivos em txt e deixar o usuário entrar com o nome do arquivo que ele quiser abrir.

Segue o programa que eu estou usando:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main ()

{
int linhas, colunas;
string nomearq;
string line;

cout << "Entre com o numero de linhas: "; //esses dados serão usados posteriormente
cin >> linhas;

cout << "Entre com o numero de colunas: "; //esses dados serão usados posteriormente
cin >> colunas;

cout << "Entre com o nome do arquivo: "; //nome do arquivo que o usuário quer abrir
cin >> nomearq;
cout << endl;

ifstream arquivo ("teste.txt"); //O PROBLEMA ESTÁ AQUI! Eu quero colocar a variável "nomearq" aqui dentro do argumento, mas não //funciona

if (arquivo.is_open())
{
while (! arquivo.eof() ) //enquanto end of file for false continua
{
getline (arquivo,line);
cout << line << endl;
}
arquivo.close();
}

else cout << "Problemas ao abrir o arquivo escolhido";

return 0;
}

Se alguém tiver uma solução, será de grande ajuda. Muito obrigado a todos que tentarem.

Abraços,

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

1 resposta a esta questão

Posts Recomendados

  • 0
    cout << "Entre com o nome do arquivo: "; //nome do arquivo que o usuário quer abrir
    cin >> nomearquivo;
    cout << endl;
    
    nomearquivo = nomearquivo+".txt";
    ifstream arquivo(nomearquivo);
 

si não funcionar ifstream arquivo (nomearquivo); prove

   ifstream arquivo (nomearquivo.c_str());

Ou diretamente:

    cout << "Entre com o nome do arquivo: "; //nome do arquivo que o usuário quer abrir
    cin >> nomearquivo;
    cout << endl;
    
   ifstream arquivo( (nomearquivo+".txt").c_str() );

Alguma dessas funciona seguro.

Editado por vangodp
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...