Wt examples  4.10.0
Loading...
Searching...
No Matches
Enumerations | Functions
Dictionary.h File Reference
#include <string>

Go to the source code of this file.

Enumerations

enum class  Dictionary { English = 0 , Dutch = 1 }
 

Functions

std::string randomWord (Dictionary dictionary)
 

Enumeration Type Documentation

◆ Dictionary

enum class Dictionary
strong
Enumerator
English 
Dutch 

Definition at line 13 of file Dictionary.h.

13 {
14 English = 0,
15 Dutch = 1
16};

Function Documentation

◆ randomWord()

std::string randomWord ( Dictionary  dictionary)

Definition at line 14 of file Dictionary.C.

15{
16 std::ifstream dict;
17 if (dictionary == Dictionary::Dutch) {
18 dict.open(Wt::WApplication::appRoot() + "dict-nl.txt");
19 } else { // english is default
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}