我正在编写一个简单的函数,根据一组文件生成新的文件名。这些文件应该被命名为cam1_0.bmp、cam1_1.bmp等。我尝试了以下代码:
static int suffix = 0;
std::string fPre("cam");
std::ifstream fs;
std::string fName;
do {
fName = fPre;
fName.append(std::to_string(camera)).append("_").append(std::to_string(suffix)).append(".bmp");
fs.open(fName);
} while (fs.good() && ++suffix);
这个代码可以正常工作,但是让我想知道除了0和1之外的数字值对应的布尔值的标准定义行为是什么。通过这个实验,我发现所有的数值,包括负数,都会被视为true,只有0才被标准认为是false吗?
0
是唯一的“假”整数。 - Cameron