这是我的程序,它应该从文件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";
}
}
答案 0 :(得分:4)
它不起作用,因为你的参数处理都是错误的。
声明
void GetTeamInfo(Team)
告诉编译器GetTeamInfo
是一个接受类型为Team
的参数的函数,但是你没有给它起一个名字,所以你不能在函数内的任何地方使用该参数。 / p>
如果你想使用传递的参数,你应该给它一个名字:
void GetTeamInfo(Team ko)
然后,您不必在函数内声明变量ko
。
但是,这无论如何都不会起作用,因为默认情况下参数是按值传递 ,这意味着参数是来自调用者的值的副本。而更改副本当然不会改变原件。所以你应该做的是通过引用传递参数::
void GetTeamInfo(Team& ko)
所有这些都是非常基本的C ++知识,任何好的书或教程应该很早就学会了这一点。
至于程序无法打开文件的问题,导致该问题的原因可能有多种:
您的IDE(集成开发环境)正在为您的程序提供一个当前目录,该文件不在该目录中。这可以通过项目设置进行更改。
该文件实际上并非您认为的位置。
该文件根本不存在。
在Linux和Mac OSX等系统上,文件名区分大小写,实际文件的名称中没有大写'T'
。