/* Plank Random Choosing Algorithm. James S. Plank Tue Oct 9 13:31:56 EDT 2018 */ #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { vector names; vector words; string n, w, tmp; int i, j, ln, lw; char *buf; istringstream ss; char line[500]; char l2[1000]; FILE *p; multiset m; multiset ::iterator mit; printf("Enter name-word pairs, then \n"); lw = 0; while (cin >> n >> w) { names.push_back(n); words.push_back(w); lw += w.size(); } buf = (char *) malloc(lw+500); for (i = 0; i < names.size(); i++) { w = words[i]; for (j = 1; j < names.size(); j++) { w += words[(i+j)%names.size()]; } sprintf(buf, "echo %s | openssl md5", w.c_str()); p = popen(buf, "r"); fgets(line, 500, p); // cout << line << endl; ss.clear(); ss.str(line); ss >> n; pclose(p); sprintf(l2, "%s %-15s %-20s %s\n", n.c_str(), names[i].c_str(), words[i].c_str(), w.c_str()); m.insert(l2); } for (mit = m.begin(); mit != m.end(); mit++) cout << *mit; return 0; }