我在尝试读取字符串然后从文件中读取两个双打时收到以下错误:
错误:没有操作员">>"匹配这些操作数 操作数类型是:std :: ifstream>>的std :: string
对于以下代码:
std::string name;
double mass(0), radius(0), gravity(0);
std::ifstream inFile;
inFile.open("solSystem.txt", std::ios::app);
inCheck(inFile);
while (inFile >> name >> radius >> mass)
{
someFunction(name, radius, mass);
}
inFile.close();
我在(std::ifstream >> std::string)
之前使用了相同的代码而没有问题,但是在该实例中输入文件只有字符。
这是输入文件:
Sun 6.96e+08 1.989e+30
Mercury 2.44e+06 3.285e+23
Venus 6.052e+06 4.867e+24
Earth 6.371e+06 5.972e+24
Mars 3.39e+06 6.39e+23
Jupiter 6.9911e+07 1.898e+27
Saturn 5.8232e+07 5.683e+26
Uranus 2.5362e+07 8.681e+25
Neptune 2.4622e+07 1.024e+26
Pluto 1.186e+06 1.309e+22
在你回答之前,我正在寻找一个解决方案,但是我也想知道为什么我会收到这个错误,以后我可能会避免这个错误。
答案 0 :(得分:1)
所以任何偶然发现这个问题的人都可以找到解决方案。