'operator>>'的模棱两可的过载
Ambiguous overload for 'operator>>'
这是我得到的错误:
ambiguous overload for ‘operator>>’ in ‘contestantsInputFile >> contestantName’|
我正在尝试通过引用将文件传递给函数,以便将名称读取到名为 contestantName 的变量中。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string contestantName = "";
string contestantName(ifstream &);
int main()
{
ifstream contestantsInputFile;
contestantsInputFile.open("contestants_file.txt");
contestantName(contestantsInputFile);
}
string contestantName(ifstream &contestantsInputFile)
{
contestantsInputFile >> contestantName; //this is the line with the error
return contestantName;
}
您尝试从 std::istream 读取函数:
contestantsInputFile >> contestantName; //this is the line with the error
也许这更多是你的意图(未经测试):
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string readContestantName(ifstream &); // renamed to be a descriptive verb
int main()
{
ifstream contestantsInputFile;
contestantsInputFile.open("contestants_file.txt");
std::string contestantName = readContestantName(contestantsInputFile);
std::cout << "contestant: " << contestantName << "n";
}
string readContestantName(ifstream &contestantsInputFile)
{
std::string contestantName; // new variable
contestantsInputFile >> contestantName; //this is the line with the error
return contestantName;
}
相关文章:
- EASTL矢量<向量<int>>连续的
- "Inverse SFINAE"避免模棱两可的过载
- 操作员C++的模棱两可的过载
- 模棱两可的重载模板
- 调用重载的"<大括号括起来的初始值设定项列表>"对于对来说就足够了是模棱两可的
- 模棱两可的 != reverse_iterator运算符
- SFINAE不能防止模棱两可的操作员过载吗?
- VSCode 说 std::chrono 是模棱两可的,如果运算符<<重载
- 为什么对模板的调用不模棱两可?
- 修复重载运算符的使用'+'模棱两可?
- 为什么同时覆盖全局新运算符和特定于类的运算符不是模棱两可的行为?
- Antlr4 C++访问模棱两可的分支
- 模棱两可的调用 - 模板化函数
- 在SESHAT中,对"元组"的引用是模棱两可的
- C++17 年与 Clang 的模棱两可的部分专业化
- gcc 中的模棱两可的运算符
- 将 NULL 转换为长不是模棱两可吗?
- C++ lambda 模棱两可的调用
- 带有模板的循环缓冲区在Keil MDK5上是模棱两可的错误?
- C++11 中对超载'ref(Select::Expressions::Code&)'的调用模棱两可