【问题标题】:C++ "No overloaded function takes 0 arguments" errorC ++“没有重载函数需要0个参数”错误
【发布时间】:2016-10-19 00:15:20
【问题描述】:

我有一个程序正在保存用户名,它的读取用户名功能一直报这个错误:

严重性代码描述项目文件行抑制状态 错误 C2661 'std::basic_ifstream>::open': 没有重载函数需要 0 个参数 ConsoleApplication3 c:\users\main\documents\visual studio 2015\projects\consoleapplication3\consoleapplication3\consoleapplication3.cpp 25

我对 C++ 很陌生,不明白这个错误是什么意思,但我的代码在这里。

string name2()
{
    string name2;
    ifstream myfile("Userlog.txt");
    myfile.open();
    myfile >> name2;
    myfile.close();
    return name2;
}

【问题讨论】:

  • open() 至少有一个参数(通常是文件名),这里不需要open(),因为你已经将文件名传递给了构造函数。
  • 所以取出open()命令?
  • 好的,是的,非常感谢,我已经坚持了 2 天,只是在其他部分工作,所以很高兴完成这项工作:D
  • 顺便说一句,如果用户名有空格,您需要使用std::getline(myfile, name2);
  • 是的,我说 cout 中没有空格,但感谢您告诉我如何拥有它们@Ken Y-N

标签: c++ ifstream


【解决方案1】:
string name2;
ifstream myfile("Userlog.txt"); // here you are calling open
myfile.open(); // no version of ifstream. so open what??!!!

上面一行可以翻译成:

ifstream myfile;
myfile.open("Userlog.txt");
myfile >> name2;
myfile.close();

【讨论】:

  • 哦,所以我必须添加关键字 ifstream?
  • 是的,fstream.h 文件中没有 ifstream 的对象,就像 cin 中的 cin istreamso 你自己声明一个
  • 好的,必须弄清楚 xD @Raindrop7 有多抱歉
猜你喜欢
  • 2017-05-01
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多