当我试图读入一个字符串,然后从一个文件中读入两倍时,我遇到了以下错误:
错误:没有运算符“>>”匹配这些操作数
操作数类型为:std::ifstream>>标准::字符串
对于以下代码:
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
在你回答之前,我正在寻找这个问题的解决方案,是的,但我也想知道为什么我会遇到这个错误,以便将来避免它。