Passagem de ifstream por parâmetro. [RESOLVIDO]

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

Roger Amaro Almeida
RogerAmaro

(usa Linux Mint)

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);
}



  


2. MELHOR RESPOSTA

Uilian Ries
uilianries

(usa Linux Mint)

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.

Paulo
paulo1205

(usa Ubuntu)

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]

Roger Amaro Almeida
RogerAmaro

(usa Linux Mint)

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


Deu certinho aqui, muito obrigado. abç


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

Uilian Ries
uilianries

(usa Linux Mint)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts