Pular para o conteúdo

Passagem de ifstream por parâmetro. [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Passagem de ifstream por parâmetro. [RESOLVIDO]

Enviado em 23/09/2015 - 19:44h

Galera seguinte, eu to fazendo um trabalho da facul, de manipulação de arquivos( uma tabela contendo informações), eu fiz uma função pra apagar alguns dados que não serão usados, mas não to conseguindo passar o ifstream por parâmetro( não sei se é possivel), agradeço desde já!

#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
using namespace std;
string apaga_espaco(ifstream& tab)
{

string s;
char N;
while (tab.good())
{
getline(tab, s);
s.erase(0,29);
N=s.find(':');
s.erase(0,N+6);
return s;
}



int main()
{
ifstream tab;
cabecalho;
char N;

tab.open("Tabela.txt", ios::in);

if (!tab.is_open())
{
cout << "Arquivo nao encontrado, erro fatal!";
exit(1);
}

apaga_espaco(ifstream* tab);
}

Responder tópico

2. Re: Passagem de ifstream por parâmetro. [RESOLVIDO]

Melhor resposta

Enviado em 23/09/2015 - 20:25h

O Paulo já resolveu o problema, mas, sim é possível passar stream por parâmetro.
std::ifstream, por default, já é input, não precisa passar isso.

Seria algo do tipo:


#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
using namespace std;
string apaga_espaco(ifstream& tab)
{

string s;
char N;
while (tab.good())
{
getline(tab, s);
s.erase(0,29);
N=s.find(':');
s.erase(0,N+6);
return s;
}
}


int main()
{
ifstream tab;
char N;

tab.open("Tabela.txt");

if (!tab.is_open())
{
cout << "Arquivo nao encontrado, erro fatal!";
exit(1);
}

apaga_espaco(tab);
}

3. Re: Passagem de ifstream por parâmetro.

Enviado em 23/09/2015 - 20:09h

apaga_espaco(tab); 
Contudo, esse seu programa está muito estranho. Aquele return dentro do loop transforma o while em if, e ainda cria uma brecha para a falta do return se a condição falhar já na primeira tentativa de iteração.

4. Re: Passagem de ifstream por parâmetro. [RESOLVIDO]

Enviado em 23/09/2015 - 20:11h


Deu certinho aqui, muito obrigado. abç

5. Re: Passagem de ifstream por parâmetro. [RESOLVIDO]

Enviado em 23/09/2015 - 20:30h

Eu ainda prefiro a resposta do Paulo, como a melhor.

Ele respondeu primeiro, explicou o caso e resolveu o problema.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder