Wt examples  4.10.4
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 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 }
static std::string appRoot()