[Solved] string equal doesn’t work c++


I suggest adding some debugging output to your program:

    while (!fileEn.eof()){
        getline(fileEn,line);

        // Debugging output
        std::cout << "en[" << i << "] = '" << line << "'" << std::endl;

        en[i]=line;
        i++;
    }

and

    for(int i = 0; i < 100; ++i){
        Matn >> matn[i];

        // Debugging output
        std::cout << "matn[" << i << "] = '" << matn[i] << "'" << std::endl;

    }

Hopefully you can see what the problem is by looking at the output.


In addition, please note that use of while (!fileEn.eof()){ ... } is not correct. See Why is iostream::eof inside a loop condition considered wrong?.

I suggest changing that loop to:

    while (getline(fileEn,line)) {

        // Debugging output
        std::cout << "en[" << i << "] = '" << line << "'" << std::endl;

        en[i]=line;
        i++;
    }

Similarly, don’t assume that Matn >> matn[i] is successful. I suggest changing that loop to:

    for(int i = 0; i < 100; ++i) {
        std::string s;
        if ( !(Matn >> s) )
        {
           // Read was not successful. Stop the loop.
           break;
        }

        matn[i] = s;

        // Debugging output
        std::cout << "matn[" << i << "] = '" << matn[i] << "'" << std::endl;

    }

solved string equal doesn’t work c++