zamiana elementów vectora string w łańcuch, usunięcie białych znaków

0

Jedno z zadań z thinking in c++. Program ma wczytywać tekst z pliku,
a następnie zamieniać go w jeden łańcuch.

 
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <conio.h>
using namespace std;

int main() {
    vector<string> v;
    ifstream in("main.cpp");
    string line, poj;

    while(getline(in, line))v.push_back(line);
    for(unsigned int i = 0; i < v.size(); i++)
    {
        poj+=v[i];
    }

    cout << poj;
    getch();
    return 0;
}

Program wczytuje tekst z pliku do vectora string, a następnie łączy jego elementy. Nie jest to jednak jeden łańcuch. Co zrobić, by usunąć białe znaki ? Lepsze będzie usuwanie już podczas wczytywania czy po nim ?

0

podczas wczytywania. Po co przechowywać w pamięci znaki, które i tak chcesz pominąć?

0

Dziękuję za odpowiedź. Właśnie pracuję nad tym.

0
cichociemny napisał(a)

Dziękuję za odpowiedź. Właśnie pracuję nad tym.

łap przykładowe rozwiązanie do porównania gdy już wykombinujesz swoim sposobem.

int main()
{
    fstream in("main.cpp", ios::in);
    string result;

    while(!in.eof())
    {
        string tmp;
        in >> tmp;
        result += tmp;
    }
    cout << result;
    
    return 0;
}
0

Ludzie, a o iteratorach nie słyszeli?

#include <fstream>
#include <iterator>
#include <sstream>

...

std::ifstream file("Program.cpp");
std::istream_iterator<std::string> it(file), end;

std::stringstream sstream;
std::copy(it, end, std::ostream_iterator<std::string>(sstream));

std::string whole = sstream.str();

1 użytkowników online, w tym zalogowanych: 0, gości: 1