当我尝试从文件中读取一个整数并使 bool 变量等于它时,我在 MSVC++ 中收到警告。

accessLV[i] = FileRead(file1, i + 1);

(accessLV 是一个 bool 数组,FileRead 是我用来减少从文件中读取所涉及的语法的函数,我是因为该语句在 for 循环中)

我试过使用 static_cast:
accessLV[i] = static_cast<bool>(FileRead(file1, i + 1));

但我仍然收到警告。我试过这样做(我不确定确切的术语):
accessLV[i] = (bool)FileRead(file1, i + 1));

而且警告仍然存在。有没有办法在不使 accessLV 成为整数数组的情况下摆脱警告?

注意:这是 FileRead 的语法,如果有帮助的话:
int FileRead(std::fstream& file, int pos)
{
    int data;
    file.seekg(file.beg + pos * sizeof(int));
    file.read(reinterpret_cast<char*>(&data), sizeof(data));
    return data;
}

最佳答案

怎么样

accessLV[i] = FileRead(file1, i + 1) != 0;

关于c++ - 如何修复 C++ 中的 int-to-bool 警告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/928758/

10-09 13:59