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
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