[英]Classes reading one word from file C++
这是我的程序,它应该从文件Team.txt
获取文本,但是它说无法打开文件。 我试图直接显示目录到文件仍然相同的答案。 我想我在这里得到了一些东西:
class Team
{
public:
string name;
string dificulty;
string section;
};
void GetTeamInfo(class Team);
int main()
{
Team ko;
GetTeamInfo(ko);
cout << ko.name;
cout << ko.dificulty;
cout << ko.section;
system("PAUSE");
}
void GetTeamInfo(Team)
{
std::ifstream fd;
fd.open("Team.txt");
Team ko;
if (fd.is_open())
{
fd >> ko.name;
fd >> ko.dificulty;
fd >> ko.section;
}
else
{
std::cout << "Mistake can't open file 'Team.txt'\n";
}
}
它不起作用,因为您的参数处理都是错误的。
报关单
void GetTeamInfo(Team)
告诉编译器GetTeamInfo
是一个采用Team
类型参数的函数,但是您没有给它命名,所以您不能在函数内的任何地方使用该参数。
如果要使用传递的参数,则应为其命名:
void GetTeamInfo(Team ko)
然后,您不必在函数内部声明变量ko
。
但是,无论如何这是行不通的,因为默认情况下参数是通过value传递的 ,这意味着参数是来自调用方的值的副本。 当然,更改副本不会更改原始文档。 因此,您应该执行的操作是通过引用传递参数:
void GetTeamInfo(Team& ko)
所有这些都是非常基本的C ++知识,任何一本好书或教程都应该很早就学到了。
至于程序无法打开文件的问题,有多种可能的原因导致该问题:
您的IDE(集成开发环境)正在为您的程序提供一个当前目录,而该文件不在该目录中。 这可以通过项目设置进行更改。
该文件实际上不在您认为的位置。
该文件根本不存在。
在Linux和Mac OSX等系统上,文件名区分大小写,并且实际文件的名称中没有大写字母'T'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.