Odczyt z pliku do dwóch tablic

0

Cześć, ostatnio dla potrzeb młodszego brata stwierdziłem, że stworzę prosty program sprawdzający umiejętność znajomości słówek z j. ang. Program ma odczytywać z pliku tekstowego odpowiednio słówka polskie i angielskie do dwóch osobnych tablic. Postanowiłem, że do pierwszej z tablic będę wczytywał kolejno pojedyncze znaki z linii aż do napotkania znaku "-", jednakże mam problem jak ustawić później pobieranie znaków do drugiej tablicy za pomocą tej funkcji. Mógłbym liczyć na jakieś sugestie(może jest na to jakiś lepszy sposób)?

1

Wczytaj całą linię, a następnie znajdź znak'-' i to co przed znakiem skopiuj do jednej tabeli to po tym znaku do drugiej.

0

Tak coś czułem, że wczytując całą linię będzie prościej. Dzięki :)

1
  1. map<string,string> - jeżeli nie uwzględniasz różnych znaczeń słów lub map<string,vector<string>>
  2. polecam: ifstream fin("vocabulary.txt"); string pl,en; oraz getline(fin>>ws,pl,'-'); getline(fin>>ws,en); mi się bardziej podoba jako: getline(getline(fin>>ws,pl,'-')>>ws,en);
  3. Czyli w sumie coś na kształt:
#include <string>
#include <vector>
#include <unordered_map>
#include <fstream>
#include <iostream>
using namespace std;

int main()
  {
   unordered_map<string,vector<string>> en_pl,pl_en;
   ifstream fin("vocabulary.txt");
   for(string en,pl;getline(getline(fin>>ws,pl,'-')>>ws,en);)
     {
      en_pl[en].push_back(pl); // z angielskiego na polski
      pl_en[pl].push_back(en); // z polskiego na angielski
     }
   return 0;
  }
0

Pierwszy raz zetknąłem się z tą klasą, ale wygląda na użyteczną, więc zaraz biorę się za przejrzenie dokumentacji. No i chyba czas zacząć korzystać częściej z std::vector. Dziękuję za pomocną odpowiedź, nauczę się czegoś nowego :D

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