从文件C++中读取一个单词的类

Classes reading one word from file C++

本文关键字:一个 单词 C++ 文件 读取      更新时间:2023-10-16

这是我的程序,它应该从文件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

然而,这无论如何都不起作用,因为默认情况下,参数通过值传递给,这意味着参数是来自调用方的值的副本。更改副本当然不会更改原始副本。所以你应该做的是通过引用传递参数

void GetTeamInfo(Team& ko)

所有这些都是非常基本的C++知识,任何一本好书或教程都应该很早就学会。


至于程序无法打开你的文件的问题,有多种可能的原因造成这个问题:

  • 您的IDE(集成开发环境)有一个程序的当前目录,而该文件不在该目录中。这可以通过项目设置进行更改。

  • 文件实际上并不是你想的地方。

  • 该文件根本不存在。

  • 在Linux和Mac OSX等系统上,文件名区分大小写,实际文件的名称中没有大写的'T'