Program to solve a word jumble using word permutations and a dictionary file. Using the letters in the jumble, they are unscrambled by deriving all the word permutations and then searching for valid words in a dictionary.

Sure! Here’s an example C++ program that solves a word jumble using word permutations and a dictionary file:

#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>

// Function to check if a word is in the dictionary
bool isInDictionary(std::string word, std::ifstream& dictionary) {
    std::string line;
    while (std::getline(dictionary, line)) {
        if (line == word) {
            return true;
    return false;

int main() {
    // Load dictionary file into ifstream
    std::ifstream dictionary("dictionary.txt");

    // Get input word jumble from user
    std::string jumble;
    std::cout << "Enter word jumble: ";
    std::cin >> jumble;

    // Generate all permutations of the jumble
    std::sort(jumble.begin(), jumble.end());
    do {
        // Check if each permutation is a valid word
        if (isInDictionary(jumble, dictionary)) {
            std::cout << jumble << std::endl;
    } while (std::next_permutation(jumble.begin(), jumble.end()));

    // Close dictionary file

    return 0;

This program first loads a dictionary file into an ifstream object. It then prompts the user to enter a word jumble and generates all possible permutations of the jumble using std::next_permutation(). For each permutation, the program checks if it is a valid word by searching for it in the dictionary file using the isInDictionary() function. If a valid word is found, it is printed to the console.

Note that the dictionary file is assumed to contain one word per line, with no leading or trailing whitespace. The file name "dictionary.txt" can be replaced with the name of the actual dictionary file. Also, the isInDictionary() function assumes that the dictionary file has already been opened and that the file pointer is at the beginning of the file.

If you found any type of error on the answer then please mention on the comment or report an answer or submit your new answer.
Leave your Answer:

Click here to submit your answer.

Notify of
Inline Feedbacks
View all comments