我无法理解为什么我的程序没有输出。 有人可以指出我忽略的规则吗?正如您所看到的,我在类中读取了一个文件,并通过公开继承的子类访问相同的类print函数。
let allTouches = event?.allTouches
let myTouch = allTouches?.first
data.txt中:
#include <string>
#include <iostream>
#include <fstream>
class mainClass
{
public:
void print();
void read();
std::ifstream dataFile;
protected:
double first, second;
std::string mainString;
bool truth;
};
void mainClass::read()
{
dataFile.open("data.txt");
}
void mainClass::print()
{
while (dataFile >> mainString >> first >> second >> truth)
{
std::cout << mainString << first << second << truth;
}
}
int main()
{
mainClass instance;
instance.read();
instance.print();
return 0;
}
答案 0 :(得分:1)
您的读取运算符dataFile >> mainString >> first >> second >> truth
总是失败,因为它无法读取布尔值'true / false'。如果要将布尔值读作文本
std::boolalpha
修饰符
dataFile >> mainString >> first >> second >> std::boolalpha >> truth;
答案 1 :(得分:0)
要从这样的文本中读取布尔值,必须使用I / O操纵器std::boolalpha
。 e.g :
dataFile >> std::boolalpha;
while (dataFile >> mainString >> first >> second >> truth)
{
std::cout << mainString << first << second << std::boolalpha << truth;
}
std::boolalpha
的参考:http://en.cppreference.com/w/cpp/io/manip/boolalpha