Wczytywanie danych z pliku do momentu napotkania znaku tabulacji

0

Mam problem ze znalezieniem odpowiedniej komendy, która pozwalała by mi wczytywać dane z pliku tekstowego do tablicy do momentu napotkania znaku tabulacji. Wiem, że istnieje funkcja fstream, która pozwala m.in wczytać dane słowo do napotkania białego znaku, problem w tym, że chce aby do tablicy były przypisywane dane oddzielone znakiem tabulacji poziomej, a nie spacji. Na przykład z pliku AAAAA (spacja) BBBB (znak tabulacji) CCCC chcę od razu wczytać AAAAA i BBBB do jednego wiersza tablicy a nie np tab[0]=AAAA i tab[1]=BBBB. Jestem otwarty na wszelkie propozycje dotyczące rozwiązania tego problemu.

3

fstream to nie funkcja. Użyj getline: https://en.cppreference.com/w/cpp/string/basic_string/getline

getline(fs, str, '\t')

2

Możesz to zrobić w poniższy sposób ( używając getline ):

#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>

using namespace std;

struct Text
{
    friend istream& operator>>( istream& is , Text& t )
    {
        getline(is,t.text,'\t');
        return is;
    }

    string text;
};

ostream& operator<<( ostream& out , const vector<Text>& data )
{
    for( const auto& text : data ) out << text.text << endl;
    return out;
}

int main()
{
    ifstream file {"dane.txt"};
    vector<Text> data { istream_iterator<Text>{file} , {} };

    cout << data;
}

https://wandbox.org/permlink/FnOezkbOfRiCsncr

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