15{
16 std::ifstream dict;
18 dict.open(Wt::WApplication::appRoot() + "dict-nl.txt");
19 } else {
20 dict.open(Wt::WApplication::appRoot() + "dict.txt");
21 }
22
23 std::string retval;
24 int numwords = 0;
25 while (dict) {
26 std::getline(dict, retval);
27 numwords++;
28 }
29 dict.clear();
30 dict.seekg(0);
31
32 std::random_device rd;
33 std::mt19937 gen(rd());
34 std::uniform_int_distribution<> distribution(0, numwords);
35 int selection = distribution(gen);
36
37 while (selection--) {
38 std::getline(dict, retval);
39 }
40 std::getline(dict, retval);
41 for (unsigned int i = 0; i < retval.size(); ++i) {
42 if (retval[i] < 'A' || retval[i] > 'Z') {
43 std::cerr << "word " << retval << " contains illegal data at pos " << i << '\n';
44 }
45 }
46
47 return retval;
48}