gpt4 book ai didi

c++ - 为什么在使用void函数时出现错误代码C2276?

转载 作者:行者123 更新时间:2023-12-02 10:50:04 25 4
gpt4 key购买 nike

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

class Movie
{
private:
ifstream inMovie; //private member variables

void openFile();
void testFile();
void readFile();

public:
Movie(); //constructor
void driver()
{
openFile();

};
};

void Movie::openFile()
{
ifstream inMovie;
inMovie.open("SciFiMovies.txt");
testFile();
readFile();
}

void Movie::testFile()
{
ifstream inMovie;
if (!inMovie.open)
{
cout << "Unable to open the file.";
exit(1);
}
}

void Movie::readFile()
{
ifstream inMovie;
string file;
while (!inMovie.eof)
{
getline(inMovie, file);
cout << file;
}
}

int main()
{
Movie movObj;
movObj.driver();
system("pause");
return 0;
}
为什么会收到错误代码?使用 !当我要测试文件是否无法打开或读取文件时,通常对我有用。另外,老师要求我们使用几个不同的void函数,这就是为什么程序看起来有点怪异的原因(使用多个函数来完成一个简单的任务)。任何帮助将不胜感激,谢谢。

最佳答案

你有:

if (!inMovie.open)
while (!inMovie.eof)
openeof都是函数,而不是数据成员。您需要在其上包含 (),如下所示:
if (!inMovie.open())
while (!inMovie.eof())
另外,一些建议阅读: Why is iostream::eof inside a loop condition (i.e. `while (!stream.eof())`) considered wrong?
另外,与错误无关,但是由于您在每个函数中重新定义了 inMovie,因此最终所有这些检查都必须是 false。删除重定义,并依靠类成员变量。

关于c++ - 为什么在使用void函数时出现错误代码C2276?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62821253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com