文件中的字符检查始终返回true

时间:2019-06-14 22:36:33

标签: c++ file char

我一直在想办法解决这个问题。我很乐意让你们中的一些人有所建树,因为我全都没主意。

bool characterGetCFG1(string typeOverLoad, string var_name, string full_text) {
int pos = full_text.rfind(var_name) + var_name.length() + 1;
char character = full_text.at(pos);
if (character == 't' || 'T') {
    cout << full_text << "\n";
    cout << "features.assigned, " << var_name << ", " << full_text.at(pos) << ".\n";
    cout << "returned true \n";
    cout << character << "\n";
    return true;
}else{
    cout << "returned false \n";
    return false;
}

void setconfig(glow_t passed_glow) {
ifstream file;

file.open("config.cfg");
if (!file.is_open()) {
    exit(-10);
}
std::string raw;
while (file.good()) {
    raw.assign(std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>());
    file >> raw;
}
file.close();

feats.setGlow(characterGetCFG1("t", "glow", raw));

不用担心我在项目中有正确的括号,我可悲地不会将它们全部放入代码标签中。

编辑:我忘了在这里添加“ config.cfg”文件。

  

glow = false

2 个答案:

答案 0 :(得分:1)

(character == 't' || 'T')

始终评估为true,前提是'T'始终为true。您可能打算写if (character == 't' || character == 'T')

答案 1 :(得分:1)

您需要

character == 't' || character == 'T'

此:

character == 't' || 'T'

相同
(character == 't') || ('T' != 0)

由于右侧的'T'总是正确的。