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.
0
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;
}