mercredi 22 avril 2020

if-statement on different typeid's

I am currently working on a code and I am trying to use a if-statement on a variable which was taken from a .txt file with a basic string. Its supposed to look like

if (a.variable == "string") {}

When I use

std::cout << a.variable << std::endl;
std::cout << "string" << std::endl;

I get the same results but when using

std::cout << typeid(a.variable).name() << std::endl;
std::cout << typeid("string").name() << std::endl;

I get different results:

NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

and

A5_c.

Could this be the reason why the if-statement failed? Unless I am incorrect, the first typeid stands for a basic string. I am grateful for any input!

The code I use for reading it looks like:

std::string::size_type beginoption = section.find("=",position); 
beginoption = beginoption +1; 
std::string::size_type endoption = section.find("\n",position); 
optionstorage = section.substr(beginoption, endoption - beginoption); 

Aucun commentaire:

Enregistrer un commentaire