Losowanie danej liczby wyrazów z pliku txt.

0

Witam, mam prośbę skierowaną do programistów. Potrzebuję napisać program, który wylosuje liczbę wyrazów która będzie do podana np. 6, z pliku tekstowego. Dodam iż wyrazów jest bardzo dużo, mianowicie ponad 50 tyś. Jeżeli ktoś nie będzie miał czasu takiego czegoś zrobić, to przynajmniej może wytłumaczyć jak to zrobić. W c++ znam tylko podstawy. Z góry dziękuję za pomoc.

0

@_13th_Dragon czego nie rozumiesz? On chce wczytać słowa z pliku a potem wylosować z nich k słów bez powtórzeń ;]

0

O ile @Shalom się nie myli ...

#include <iostream>
#include <fstream>
#include <iterator>
#include <random>
#include <vector>
#include <chrono>
#include <algorithm>
using namespace std;

int main()
  {
   const unsigned COUNT=6;
   ifstream fin("tst.cpp");
   vector<string> tb;
   copy(istream_iterator<string>(fin),istream_iterator<string>(),back_inserter<vector<string> >(tb));
   shuffle(tb.begin(),tb.end(),default_random_engine(chrono::system_clock::now().time_since_epoch().count()));
   copy(tb.begin(),tb.size()>COUNT?tb.begin()+COUNT:tb.end(),ostream_iterator<string>(cout,"\n"));
   return 0;
  }
0

Chodzi mi o to, że program pyta o liczbę słów do wylosowania i tyle tych wyrazów wylosuje oraz wypisze na ekranie.

0
_13th_Dragon napisał(a):

O ile @Shalom się nie myli ...

#include <iostream>
#include <fstream>
#include <iterator>
#include <random>
#include <vector>
#include <chrono>
#include <algorithm>
using namespace std;

int main()
  {
   const unsigned COUNT=6;
   ifstream fin("tst.cpp");
   vector<string> tb;
   copy(istream_iterator<string>(fin),istream_iterator<string>(),back_inserter<vector<string> >(tb));
   shuffle(tb.begin(),tb.end(),default_random_engine(chrono::system_clock::now().time_since_epoch().count()));
   copy(tb.begin(),tb.size()>COUNT?tb.begin()+COUNT:tb.end(),ostream_iterator<string>(cout,"\n"));
   return 0;
  }

A co mam z tym zrobić, jak to obsłużyć?

4

Leń detected

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