繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM